DateTime 和 DateTimeOffset区别 返回
DateTimeOffset是瞬时时间(也称为绝对时间)的表示形式。我指的是一个对所有人都适用的时刻(不包括闰秒,或者时间膨胀的相对论效应)。另一种表示瞬时时间的方法是使用DateTime,其中. kind是DateTimeKind.Utc。
这与公历时间(也被称为民用时)不同,公历时间是某人日历上的一个位置,全球有许多不同的日历。我们称这些日历为时区。日历时间由DateTime表示,其中. kind为DateTimeKind。不明,或者DateTimeKind.Local。和。local只有在你对使用结果的计算机的位置有隐含理解的情况下才有意义。(例如,用户的工作站)
那么,为什么使用DateTimeOffset而不是UTC日期时间呢?这都是关于视角。让我们打个比方——我们假装是摄影师。

想象一下,你正站在一个日历时间线上,用摄像机对准你面前的瞬时时间线上的一个人。你可以根据你的时区规则来排列相机——因为夏令时或其他对你的时区的法律定义的改变,时区会周期性地变化。(你的手不稳,所以相机摇晃。)
站在照片中的人会看到你相机的角度。如果其他人在拍照,他们可以从不同的角度。这就是DateTimeOffset的Offset部分所表示的内容。
如果你把相机标记为东部时间,有时你从-5指向,有时你从-4指向。世界各地都有相机,都标着不同的东西,都从不同的角度指向同一个瞬间的时间轴。它们中的一些紧挨着(或在)彼此,所以仅仅知道偏移量不足以确定时间与哪个时区相关。