Ich habe Schwierigkeiten zu verstehen, warum der Wert einer wiederhergestellten Datum-Zeit-Zeichenfolge von ihrem Originalwert abweicht. Ich schreibe die Zeichenfolge in ein universelles Datum und eine uhrzeit (Format "u" mit einem 'z' am Ende), aber wenn sie wiederhergestellt wird, unterscheidet sie sich um eine Stunde. Ich verwende das "u", um zu verhindern, dass so etwas passiert. Kann mir jemand sagen, warum es sich unterscheidet?
Ich brauche eine gute Zeichenfolgenrepräsentation, da ich den Code in 5 verschiedenen Zeitzonen verwenden werde.
Das Programm:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag("es-CR");
DateTime min = DateTime.MinValue;
Console.Write("Min value date: ");
Console.WriteLine(min);
Console.Write("String: ");
string str = min.ToString("u");
Console.WriteLine(str);
DateTime dt = DateTime.Parse(str);
Console.Write("Restored Date: ");
Console.WriteLine(dt);
Console.ReadLine();
}
}
}
Die Ausgabe ist:
Min value date: 01/01/0001 12:00:00 a.m.
String: 0001-01-01 00:00:00Z
Restored Date: 01/01/0001 01:00:00 a.m.
Bearbeiten: Option, die Costa Rica-Kultur zu versuchen.