给定一个日期和时间,结构如下:
"2011-10-21 14:44:19"
已知是太平洋时间(在适当时针对夏令时进行了调整),我需要解析日期时间并将其转换为 UTC,而不管当前服务器时间如何。
我见过这个非常相似的问题,它以假设原始日期时间采用 UTC 开头:
如何在不考虑区域设置的情况下将日期时间格式化为 GMT?
我正在尝试将其应用于我的情况,但不明白如何从太平洋时间(PST 或 PDT 视情况而定)字符串开始并到达 UTC 日期时间。 具体来说,该解决方案应用标志DateTimeStyles.AssumeUniversal
,而我需要假设太平洋时间。
您必须使用 TimeZoneInfo.ConvertTimeToUtc(DateTime, TimeZoneInfo) 进行转换。 服务器的时区无关紧要。 使用 FindSystemTimeZoneById() 选择作为第二个参数传递的时区。 您需要使用"太平洋标准时间"作为 ID。
此函数使用存储在注册表中并由 Windows 维护的时区数据库。 时区规则随时间而变化,尤其是夏令时转换,因此在该计算机上保持 Windows 更新处于活动状态对于允许Microsoft更新数据库非常重要。 清楚地知道字符串的确切来源对于正常工作非常重要。