使用.Net DateTime将PST转换为GMT,而不考虑服务器时区

使用.Net DateTime将PST转换为GMT,而不考虑服务器时区,.net,datetime,timezone,.net,Datetime,Timezone,给定的日期和时间结构如下: “2011-10-2114:44:19” 我需要解析日期时间并将其转换为UTC,而与当前服务器时间无关 我看到了一个非常类似的问题,首先假设原始日期时间是UTC: 我试图将其应用到我的情况中,但不知道如何从太平洋时间(PST或PDT,视情况而定)字符串开始并到达UTC日期时间。具体地说,该解决方案应用了标志DateTimeStyles.AssumeUniversal,而我需要假定太平洋时间。您必须使用TimeZoneInfo.ConvertTimeToUtc(Dat

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

“2011-10-2114:44:19”

我需要解析日期时间并将其转换为UTC,而与当前服务器时间无关

我看到了一个非常类似的问题,首先假设原始日期时间是UTC:


我试图将其应用到我的情况中,但不知道如何从太平洋时间(PST或PDT,视情况而定)字符串开始并到达UTC日期时间。具体地说,该解决方案应用了标志DateTimeStyles.AssumeUniversal,而我需要假定太平洋时间。

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


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

如果这是一个web应用程序,最好使用JavaScript获取用户的时间。DateTime连接到系统时间,这当然是服务器的时间,即使使用web应用程序也是如此。只需确定值的偏移量,这是一项简单的任务,您就可以完成。@Ramhound:不,原始日期来自一个格式无法更改的XML提要,发送到服务器应用程序。服务器应用程序可以在许多不同的数据中心运行,并且不能假定服务器设置为特定时区。