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

c# – DateTime.Now在PST服务器上表示为GMT时间

发布时间:2020-12-16 01:45:32 所属栏目:百科 来源:网络整理
导读:我将信息存储在数据库中,并将我的POCO属性设置为DateTime.Now. 显示此值时,它将显示为PST时间.我希望它显示为GMT时间. 我会做这样的事情来显示/存储它还是有更好的方法? TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("GMT"); var GMTTime = Time
我将信息存储在数据库中,并将我的POCO属性设置为DateTime.Now.

显示此值时,它将显示为PST时间.我希望它显示为GMT时间.

我会做这样的事情来显示/存储它还是有更好的方法?

TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("GMT");  
var GMTTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now,tz));

此外,它需要考虑夏令时,因为英国在一年中的不同时间改变其时钟而不是美国:

更新:我发现在TimeZone设置中你可以通过GMT标准时间或格林威治标准时间,第一次考虑到DST

解决方法

存储为 UTC.它专为与时区无关的时间而设计.

DateTime currentUtcTime = DateTime.UtcNow;
DateTime localTime = currentUtcTime.ToLocalTime();
DateTime backToUtcAgain = localTime.ToUniversalTime();

给定的DateTime是UTC还是本地时间由DateTime.Kind确定.在序列化/反序列化DateTime值时(例如,从数据库中),您必须记住这一点,因为通常不会存储此信息,并且当您获得DateTime时,它将在大多数情况下具有值DateTimeKind.Unspecified,这可能会导致转换方法的问题.我只是确保在从持久数据存储中加载内容时强制使用DateTimeKind.Utc.

(编辑:李大同)

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

    推荐文章
      热点阅读