c# - TimeZoneInfo.ConvertTimeFromUtc 返回错误的 DateTime
问题描述
我调用了方法:
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")) // UTC+0
它返回的 DateTime 比正确的 DateTime 大一小时。为什么?它将如何修复?
返回值应等于 DateTime.Now.ToUniversalTime()
解决方案
UTC 等于 GMT。但由于夏季,目前我们处于 BST,即 GMT + 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"))
推荐阅读
- angular - 移动浏览器上的 Angular 应用程序位置服务问题
- ios - 使用 React Native iOS Release Build 不会加载新代码,但版本会加载
- javascript - 如何将 HTML 表格中的数据与选项标签的选定值一起导出到 Excel?
- excel - 如果满足条件如何添加单元格
- android - 如何从 onScrollPositionChanged 回调中更改 VerticalScroller 的 scrollerPosition?
- javascript - 如何在使用 Firebase 存储上传后获取调整大小的 downloadUrl(Web SDK + 调整图像大小扩展)
- html - 如何在 ngFor 循环中使用 ngIf 循环?
- javascript - 由 webgl 在 2d 中渲染的相同 PNG 文件不如 canvas2d 平滑
- azure - 在 azure Web 服务身份验证问题上运行公共和私有图像
- list - 递归在 Haskell 中是如何工作的?- 示例合并功能