2012-12-10 11 views
15

mam to w moim kodu:DateTime i CultureInfo

var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); 

A kiedy mój obecny kulturalne jest holenderski (nl-NL) zamiast 1 maja mam 5 stycznia.

Myślę, że błąd jest w drugim parametrze dd.MM.yyyy HH:mm:ss.

Czy można to naprawić za pomocą klasy CultureInfo?

+1

Tak, nie używaj ParseExact ale Przetwarza !!! W ParseExact pytasz o konkretną kolejność części daty, podana kultura jest używana tylko dla łańcuchów i separatorów. –

+1

Skąd pochodzi "data"? Jak jest tworzony? –

Odpowiedz

22

Możesz spróbować wykonać następujące czynności:

System.Globalization.CultureInfo cultureinfo = 
     new System.Globalization.CultureInfo("nl-NL"); 
DateTime dt = DateTime.Parse(date, cultureinfo); 
+1

A co, gdy kultura jest en-us? Czy będę musiał kodować dla każdego języka, który tam jest? –

+1

Możesz [Patrz tutaj] (http://www.csharp-examples.net/culture-names/) – RajeshKdev

1

InvariantCulture jest podobna do en-US, więc chciałbym używać odpowiedniego CultureInfo zamiast:

var dutchCulture = CultureInfo.CreateSpecificCulture("nl-NL"); 
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCulture); 

Demo

A co, gdy kultura jest en-us? Czy będę musiał kodować dla w każdym języku, który tam jest?

Jeśli chcesz wiedzieć, jak wyświetlić datę w innej kulturze, jak "en-us", możesz użyć date1.ToString(CultureInfo.CreateSpecificCulture("en-US")).

+0

A co, kiedy kultura jest en-us? Czy będę musiał kodować dla każdego języka, który tam jest? –

+0

@Srcee: Co masz na myśli? Jeśli ciąg formatu to "dd.MM.rrrr", nigdy nie będzie to kultura z nami. Jeśli zamiast tego masz na myśli sposób wyświetlania daty w innej kulturze, to jest to kolejne pytanie. Możesz użyć 'date1.ToString (CultureInfo.CreateSpecificCulture (" en-US "))'. –

5

Użyj klasy CultureInfo, aby zmienić informacje o kulturze.

var dutchCultureInfo = CultureInfo.CreateSpecificCulture("nl-NL"); 
var date1 = DateTime.ParseExact(date, "dd.MM.yyyy HH:mm:ss", dutchCultureInfo); 
Powiązane problemy