CultureInfo bei DateTime.ParseExact?

8

Ich verstehe nicht Warum es eine Überlastung mit IFormatProvider in DateTime.ParseExact gibt?

Wenn ich genau definiere, wie es analysiert werden soll ( Leerzeichen, Trennzeichen usw. ), sollte es kein Problem geben:

Alle diese 3 Beispiele zeigen das gleiche Ergebnis:

Beispiel 1

%Vor%

Beispiel 2

%Vor%

Beispiel 3

%Vor%

Warum muss ich den Provider angeben? Wenn ich explizit die Struktur definiere?

    
Royi Namir 13.02.2013, 10:01
quelle

3 Antworten

8

Es gibt immer noch Formatbezeichner, die kulturabhängig sind, wie das Zeittrennzeichen (:) und das Datumstrennzeichen (/). Diese stimmen nicht mit einem bestimmten Zeichen überein, sondern mit dem in der Kultur angegebenen Trennzeichen.

    
Guffa 13.02.2013, 10:04
quelle
1

Weil:

  1. Das angegebene Format kann lokalisierte Namen für Wochentage und Monate enthalten.
  2. Die Zeichen : und / in der Formatzeichenfolge stellen keine literalen Zeichen dar, sondern das vom Formatanbieter angegebene Trennzeichen (siehe unten in der Tabelle hier ).
Jon 13.02.2013 10:03
quelle
1

Ich kann mir hauptsächlich eine Webanwendung und vielleicht ein Formular vorstellen, wo der Client Informationen an den Server übermittelt. Dieses Formular enthält auch einen Datumsauswahlpunkt und sendet das ausgewählte Datum basierend auf der spezifischen Kultur. Also, wenn die Website in den USA verwendet wird, senden sie 13/2/2013, während aus Deutschland Sie 13.2.2013 erhalten. So, wie behandeln Sie das Datum in Ihrem Server-Side-Code?

Sie könnten sowas in ASP.NET MVC verwenden (Danke an Sergey, CultureInfo vom aktuellen Besucher abrufen und darauf basierende Ressourcen setzen? ):

%Vor%

Und dann parse zu datetime:

%Vor%     
tungi52 17.02.2013 07:56
quelle

Tags und Links