Mam pole tekstowe na wartość daty, którą pobieram jako

Dim myDate as string = txtDate.Text.Trim

Wartość jest w formacie dd/MM/yyyy. np. 16.02.2012 oczywiście dla pojedynczych cyfr, może to być również 1/2/2012

Mam, w moim web.config;

<globalization uiCulture="en-GB" culture="en-GB"/>

Następnie używam,

Dim newDate As Date = Date.ParseExact(adate, "dd/MM/yyyy", Nothing)

Co powoduje błąd "String was not recognized as a valid DateTime."

Próbowałem też następujących bez powodzenia!:

Za)

Dim newDate As DateTime = DateTime.ParseExact(adate, "dd/MM/yyyy", Nothing)

B)

Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
Dim newDate as Date = Date.ParseExact("16/02/2012", format, nothing)

W tym konkretnym przypadku próbowałem również określić informacje o formacie specyficznym dla kultury i styl formatowania zamiast nothing powyżej.

Jakieś pomysły? Skończyły mi się moje....

1
Subliminal Hash 28 luty 2012, 19:06

3 odpowiedzi

Najlepsza odpowiedź

Używam

Convert.ToDateTime("28/02/2012", CultureInfo.GetCultureInfo("en-gb"))

Daj mi znać, czy zadziałało, czy nie.

0
Kamran Pervaiz 28 luty 2012, 19:29

W przykładowych datach używasz znaku . jako separatora. W swoim kodzie używasz /.

Upewnij się, że jesteś konsekwentny i zobacz, czy to załatwia sprawę.

0
Justin Niessner 28 luty 2012, 19:08

Co powiesz na to:

Dim myDate as DateTime = DateTime.ParseExact("28/02/2012", "dd/MM/yyyy", CultureInfo.CreateSpecificCulture("en-GB"))

myDate.ToShortDateString()

Oczywiście możesz dopasować ten kod do swoich potrzeb.

0
Matt 28 luty 2012, 19:15