通过DST从UTC转换为我们的山区时代



我一直在四处寻找如何从UTC转换为山区时间,我成功地找到了每个人都说的以下功能。每当它从UTC转换为Mountain时,偏移量总是-7(当前应为-6时)。除了似乎不是。谁能为我发光,或者将其考虑到DST的方式?

DateTime utcTime = new DateTime(createdDate.Ticks, DateTimeKind.Utc);
DateTime mountainTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTime, "US Mountain Standard Time");

谢谢dman

看起来,.NET中有两个区域(至少在我的Windows 8安装上)是山时间。

您正在使用的"美国山区标准时间",并且没有观察到DST(适用于亚利桑那州)和普通的"山区标准时间", dos 观察dst。因此,您只需要摆脱"我们"部分,它将起作用:

using System;
class Test
{
    static void Main()
    {
        DateTime octoberUtc = new DateTime(2012, 10, 1, 0, 0, 0, DateTimeKind.Utc);
        DateTime decemberUtc = new DateTime(2012, 12, 1, 0, 0, 0, DateTimeKind.Utc);
        ConvertToMountainTime(octoberUtc);
        ConvertToMountainTime(decemberUtc);
    }
    static void ConvertToMountainTime(DateTime utc)
    {
        DateTime mountain = TimeZoneInfo.ConvertTimeBySystemTimeZoneId
            (utc, "Mountain Standard Time");
        Console.WriteLine("{0} (UTC) = {1} Mountain time", utc, mountain);
    }
}

输出(英国文化):

01/10/2012 00:00:00 (UTC) = 30/09/2012 18:00:00 Mountain time
01/12/2012 00:00:00 (UTC) = 30/11/2012 17:00:00 Mountain time

山区标准时间仍然-7。符合普遍的信念,我们不会改变时间,而是我们的时间区域。我们目前的时区实际上是山日光时间。找出时区信息是....不愉快

相关内容

  • 没有找到相关文章

最新更新