Ich bin mir nicht sicher, ob das Problem, das ich habe, wegen eines Mangels an Verständnis dafür ist, wie die Datetime-Arbeit im Umm al-Qura-Kalender funktioniert oder ob es ein Bug ist.Arabische Kultur datetime Parsing gibt keine erwarteten Werte zurück
Im Grunde arbeite ich daran, einen Test zu schreiben, um sicherzustellen, dass eine interne Dienstprogrammklasse unabhängig von der aktuellen Kultur Werte analysiert.
Im folgenden Code ist es das Ziel DT1 gleich dt2 zu haben.
public void ArabicTesting()
{
CultureInfo culture = new CultureInfo("ar");
// Initialize a new datetime (04/01/2048 06:21:01 AM)
DateTime dt1 = new DateTime(2048, 4, 1, 6, 21, 1);
// Convert the datetime to a string using arabic cultureinfo
// string ends up being "17/06/70 06:21:01 ص,"
string dt2_string = $"{dt1.ToString(culture.DateTimeFormat.ShortDatePattern)} {dt1.ToString(culture.DateTimeFormat.LongTimePattern)}";
// Parse the string
DateTime dt2;
DateTime.TryParse(dt2_string, culture, DateTimeStyles.None, out dt2);
}
Das Problem ist, dass DateTime.TryParse wird die Datetime als String in ein Datetime-Parsing, die die gleiche erscheint, hat aber andere Werte als das, was erwartet wird.
Hier sind ein paar Screenshots von dem, was geschieht:
Wenn Sie beide sehen DT1 und dt2 Vorschauwerte, erscheinen sie die gleiche „17/06/70 06:21:01 ص, "jedoch sind die tatsächlichen Werte der Objekte völlig verschieden.
Weiß jemand, ob dies ein MS-Fehler ist, oder liegt es daran, dass ich nicht den richtigen String-Wert in die DateTime.TryParse Methode übertrage?
Was passiert, wenn Sie ein 'LongDatePattern' anstatt eines' ShortDatePattern' verwenden? 'string dt2_string = $" {dt1.ToString (culture.DateTimeFormat.LongDatePattern)} {dt1.ToString (culture.DateTimeFormat.LongTimePattern)} ";' – Igor
@Igor, das für dieses Szenario funktioniert hat - danke. Ich bin immer noch etwas besorgt, es scheint mir ein Problem zu sein, dass die Standard-ToString-Methode einer DateTime identische Werte für verschiedene Daten zurückgibt. Es sollte nicht Standard sein, ein kurzes Datumsmuster in arabischen Kulturen zu verwenden, wenn das passieren kann? – user2338408