首页 文章

使用.Net DateTime将PST转换为GMT与服务器时区无关

提问于
浏览
1

给定的日期和时间结构如下:

“2011-10-21 14:44:19”

这被称为太平洋时间(适当时为夏令时调整),我需要解析DateTime并将其转换为UTC,而不管当前的服务器时间 .

我已经看到了这个非常相似的问题,首先假设原始DateTime是UTC:

How to format a datetime to GMT irrespective of regional settings?

我知道如何从太平洋时间(适当的PST或PDT)字符串开始并到达UTC日期时间 . 具体来说,该解决方案应用标志 DateTimeStyles.AssumeUniversal ,而我需要假设太平洋时间 .

1 回答

  • 2

    您将不得不使用TimeZoneInfo.ConvertTimeToUtc(DateTime,TimeZoneInfo)进行转换 . 服务器的时区无关紧要 . 使用FindSystemTimeZoneById()选择您传递的时区作为第二个参数 . 您需要“太平洋标准时间”作为身份证明 .

    此函数使用存储在注册表中并由Windows维护的时区数据库 . 时区规则随时间而变化,尤其是夏令时转换,因此在该计算机上保持Windows Update活动对于允许Microsoft更新数据库非常重要 . 清楚地知道字符串的确切位置对于正常工作非常重要 .

相关问题