Dizeyi tarih saatine dönüştürme

Ben vb framework 3.5 kullanarak asp.net sitesi geliştiriyorum.

Dize verilerini Tarihe dönüştürmekte zorlanıyorum cdate işlevini kullanmayı denedim,

Bir string değişkeni olan sdate değişkenim var ve textbox'tan gelen tarih dd/mm/yyyy olarak saklanıyor, şimdi bu stringi bir Date değişkenine dönüştürmek istiyorum çünkü bir gün ekleme veya bir gün çıkarma gibi işlemleri gerçekleştirmem gerekiyor.

Lütfen bu konuda nasıl ilerleyeceğim konusunda bana yol gösterin. 3. satırda String geçerli bir DateTime olarak tanınmadı şeklinde hata alıyorum. Aşağıdaki gibi yapmaya çalıştım ama hata geliyor

Dim sdate As String 
Dim expenddt As Date
expenddt = Date.Parse(edate)
expenddt = expenddt.AddDays(-1)

Ancak şu hatayı alıyorum

String'den Date türüne dönüştürme geçerli değil.

Dizeden bir Tarihi nasıl alabilirim?

Çözüm

Doğru biçim dizesi ile Date.ParseExact veya Date.TryParseExact kullanmanız gerekir.

 Dim edate = "10/12/2009"
 Dim expenddt As Date = Date.ParseExact(edate, "dd/MM/yyyy", 
            System.Globalization.DateTimeFormatInfo.InvariantInfo)

VEYA

 Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
 Dim expenddt As Date = Date.ParseExact(edate, format,  
     System.Globalization.DateTimeFormatInfo.InvariantInfo, 
     Globalization.DateTimeStyles.None)

VEYA

Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
Dim expenddt As Date
Date.TryParseExact(edate, format, 
    System.Globalization.DateTimeFormatInfo.InvariantInfo, 
    Globalization.DateTimeStyles.None, expenddt)
Yorumlar (2)

DateTime.ParseExact yöntemini kullanmayı deneyin; bu yöntemde hem datetime maskesini hem de orijinal ayrıştırılmış dizeyi belirtebilirsiniz. Bu konu hakkında buradan bilgi edinebilirsiniz: MSDN: DateTime.ParseExact

Yorumlar (3)

Tarihi şu şekilde dönüştürmeyi deneyin:

    Dim expenddt as Date = Date.ParseExact(edate, "dd/mm/yyyy", 
System.Globalization.DateTimeFormatInfo.InvariantInfo);

Umarım bu yardımcı olur.

Yorumlar (1)