我叫方法:
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")) // UTC+0
它返回的DateTime比正确的DateTime大一小时。 为什么?如何解决?
返回值应等于DateTime.Now.ToUniversalTime()
答案 0 :(得分:2)
UTC等于GMT。但是当前由于夏季(GMT + 1)而处于BST。GMT Standard Time
会根据夏令时自动进行调整。如果您不想针对夏令时进行调整,请使用Greenwich Standard Time
,而不要使用GMT Standard Time
。
编辑:您要做的就是将GMT Standard Time
更改为Greenwich Standard Time
(请参见下文)
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time"))
答案 1 :(得分:0)
DateTime.Now.ToUniversalTime()
已经恢复了UTC,您无需再次将 转换为UTC。
提示:如果您真的只需要UTC,请使用DateTime.UtcNow
,那么您根本不必关心时区以及本地时区可能是什么。
更新:哦,“ GMT标准时间”不是“格林威治标准时间”。