加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在给定时区的情况下,将datetime转换为UTC

发布时间:2020-12-15 04:03:09 所属栏目:百科 来源:网络整理
导读:使用C#,我需要将传入的datetime值转换为UTC.我知道.NET中有这些转换的功能,但是我必须确定时区是标准时区列表 http://www.timegenie.com/timezones 在.NET中最好的方法是什么?需要创建映射表以将时区转换为TimeZoneInfo.GetSystemTimeZones()中的ID(例如“P
使用C#,我需要将传入的datetime值转换为UTC.我知道.NET中有这些转换的功能,但是我必须确定时区是标准时区列表

http://www.timegenie.com/timezones

在.NET中最好的方法是什么?需要创建映射表以将时区转换为TimeZoneInfo.GetSystemTimeZones()中的ID(例如“Pacific Standard Time(Mexico)”)
所以我可以使用TimeZoneInfo.FindSystemTimeZoneById()?

感谢任何帮助

解决方法

之前我已经使用映射表将时区id存储在数据库中.即包含TimeZone.GetSystemTimeZones()的结果的表格

您实际上并不需要使用TimeZoneInfo.FindSystemTimeZoneById():您可以使用TimeZoneInfo.ConvertTimeBySystemTimeZoneId()的重载之一进行转换.此方法有一些重载,它们采用DateTime值,有些重载取值为DateTimeOffset(这些值优先选择一个明确的时间点).

例如

TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now,"New Zealand Standard Time","UTC")

使用系统时区ID而不是数据库中存储的偏移量的真正好处是TimeZoneInfo.ConvertTimeBySystemTimeZoneId会为您自动处理夏令时.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读