我一直有一些麻烦,理解为什么恢复的日期时间字符串的值与原来的不同。我正在将该字符串写入通用日期时间(格式为“u”,因此它末尾有一个'z'),但是当它恢复时,它相差一个小时。我使用“u”来防止这种事情发生。有人可以告诉我为什么它有所不同吗?DateTime.Parse关闭一个小时。为什么?
我需要一个很好的字符串表示形式,因为我将在5个不同的时区使用代码。
程序:
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();
}
}
}
输出是:
最小值日期:01/01/0001 12:00:00 AM
字符串:0001-01-01 00:00:00Z
恢复日期:01/01/0001 01:00:00 am
编辑:选择尝试哥斯达黎加文化。
当您将字符串解析回日期时间时,您在什么时区? – 2011-01-13 16:15:58