给定的日期和时间结构如下:
“2011-10-21 14:44:19”
已知为太平洋时间(适当时为夏令时调整),我需要解析DateTime并将其转换为UTC,无论当前服务器时间。
我见过这个非常相似的问题,首先假设原始DateTime是UTC:
How to format a datetime to GMT irrespective of regional settings?
我正在尝试将其应用于我的情况,但不了解如何从太平洋时间(适当的PST或PDT)字符串开始并到达UTC DateTime。具体来说,该解决方案应用标志DateTimeStyles.AssumeUniversal
,而我需要假设太平洋时间。
答案 0 :(得分:2)
您将不得不使用TimeZoneInfo.ConvertTimeToUtc(DateTime,TimeZoneInfo)进行转换。服务器的时区无关紧要。使用FindSystemTimeZoneById()选择您传递的时区作为第二个参数。您需要“太平洋标准时间”作为身份。
此函数使用存储在注册表中并由Windows维护的时区数据库。时区规则随时间而变化,尤其是夏令时转换,因此在该计算机上保持Windows Update活动对于允许Microsoft更新数据库非常重要。清楚地知道完全字符串的来源对于这一点来说非常重要。