DateTime.ToUniversalTime()如何工作?

DateTime.ToUniversalTime()如何工作?,第1张

DateTime.ToUniversalTime()如何工作?

没有附加到

DateTime
对象的隐式时区。如果
ToUniversalTime()
在其上运行,它将使用运行代码的上下文的时区。

例如,如果我

DateTime
从1970年1月1日这个时代创建一个,那么
DateTime
无论我在世界的哪个角落,它都给我相同的对象。

如果我

ToUniversalTime()
在格林威治中运行代码时在其上运行,那么我得到的时间是相同的。如果我在温哥华居住时这样做,那么我得到的偏移
DateTime
对象为-8小时。

这就是为什么在需要进行任何类型的日期转换或本地化时,将与时间相关的信息作为UTC时间存储在数据库中很重要的原因。考虑您的代码库是否已在另一个时区移至服务器设施;)

编辑:Joel的答案的注释-

DateTime
默认情况下,对象的类型为
DateTimeKind.Local
。如果您解析日期并将其设置为
DateTimeKind.Utc
,则不
ToUniversalTime()
执行任何转换。

这是有关“用日期时间编码的最佳做法”的文章,以及有关用.Net转换日期时间的文章。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5499049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存