1

给定一个日期和时间结构为:

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

已知是太平洋时间(适当时调整夏令时),无论当前服务器时间如何,我都需要解析 DateTime 并将其转换为 UTC。

我已经看到了这个非常相似的问题,该问题以原始 DateTime 为 UTC 的假设开始:

无论区域设置如何,如何将日期时间格式化为 GMT?

我正在尝试将其应用于我的情况,但不明白如何从太平洋时间(PST 或 PDT,视情况而定)字符串开始并到达 UTC 日期时间。具体来说,该解决方案应用 flag DateTimeStyles.AssumeUniversal,而我需要假设 Pacific Time。

4

1 回答 1

2

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

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

于 2012-04-06T19:12:19.263 回答