UTC和GMT标准时间在.NET中的区别
在.NET中,以下语句返回不同的值:
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"))
);
// displays 7/1/2010 1:30:00 PM
..和这个...
Response.Write(
TimeZoneInfo.ConvertTime(
DateTime.Parse("2010-07-01 5:30:00.000"),
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"),
TimeZoneInfo.FindSystemTimeZoneById("UTC"))
);
// displays 7/1/2010 12:30:00 PM
为什么是这样? 我认为UTC和GMT标准时间是相同的。
更新
进一步测试后,我发现以下内容似乎是相同的:
“世界标准时间”
“格林威治标准时间”
“摩洛哥标准时间”
鉴于以下情况在夏季有所不同:
“格林威治标准时间”
也许我的问题应该是,为什么“格林威治标准时间”和“格林威治标准时间”有所不同?
结束更新
GMT不针对夏令时(DST)进行调整。 你可以在这个网站上从马的嘴里听到它。
添加下面这行代码来查看问题的根源:
Console.WriteLine(TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time").SupportsDaylightSavingTime);
输出:真。
这不是一个.NET问题,它是Windows搞乱了。 TimeZoneInfo使用的注册表项是HKLM SOFTWARE Microsoft Windows NT CurrentVersion Time Zones GMT标准时间。 你最好坚持使用UTC。
[我真的只是支持Hans Passant的答案]
在我看来,对使用“格林威治标准时间”一词似乎意味着“格林威治标准时间”这个词,以及英国/爱尔兰使用的时区,在冬季格林尼治标准时间和英国夏令时间之间翻转在夏天,似乎没有一个明确的名字在自己的权利!
为了更加混淆事物,我运行了TimeZoneInfo.GetSystemTimeZones的MSDN文档中的示例代码,并查看了输出。
我非常惊讶地看到“GMT标准时间”时区的下列定义
ID: GMT Standard Time Display Name: (UTC) Dublin, Edinburgh, Lisbon, London Standard Name: GMT Standard Time Daylight Name: GMT Daylight Time ***Has Daylight Saving Time*** Offset from UTC: 0 hours, 0 minutes Number of adjustment rules: 1 Adjustment Rules: From 01/01/0001 00:00:00 to 31/12/9999 00:00:00 Delta: 01:00:00 Begins at 01:00 on Sunday of week 5 of March Ends at 02:00 on Sunday of week 5 of October
看起来(至少对我来说)谁负责定义微软的时区,在这里甚至更加混淆了水域。
他们显然想描述英国/爱尔兰使用的时区,但他们给了它一个ID,在ID和显示名称中包含术语“GMT”和UTC。 我觉得这个时区定义(不管它应该被称为什么)不是UTC。 它可能有一半时间与UTC非常相似,但这就是全部!
区别如下:
另一方面, 日光节约时间(DST)正在推进时钟以适应季节变化,以最大限度地利用日光。
"It is observed in many countries but not all"
。 这可能是可变的,因为去年夏天,一些像巴基斯坦这样的国家决定在比通常情况晚一个月的时间内恢复钟表。
世界时区是全球最新时间信息的良好资源。
希望这可以帮助
链接地址: http://www.djcxy.com/p/4993.html上一篇: Difference between UTC and GMT Standard Time in .NET
下一篇: A better way to splice an array into an array in javascript