我打电话给方法:
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")) // UTC+0
返回的DateTime比正确的DateTime大一个小时。为什么?它将如何修复?
返回的值应该相等于DateTime.Now.ToUniversalTime()
发布于 2018-07-13 05:30:11
世界协调时等于格林尼治标准时间。但是现在我们正在BST,因为夏天,也就是格林尼治标准时间+ 1。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"))
发布于 2018-07-13 05:24:20
DateTime.Now.ToUniversalTime()
已经重新运行了UTC,您不需要再次将其转换为UTC。
提示:如果您真的需要UTC,可以使用DateTime.UtcNow
,那么您根本不必关心时区以及您的本地时区可能是什么。
更新:哦,“格林威治标准时间”不是“格林威治标准时间”。
https://stackoverflow.com/questions/51326079
复制相似问题