系统之间的差异.日期时间和系统.日期时间偏移



任何人都能解释System之间的区别吗。日期时间和系统。C#中的DateTimeOffset。NET?哪个最适合与来自不同时区的用户一起构建web应用程序?

DateTime值定义特定的日期和时间,它包括一个Kind属性,该属性提供有关该日期和时间所属时区的有限信息。

DateTimeOffset结构表示日期和时间值,以及指示该值与UTC相差多少的偏移量。因此,该值总是明确地标识单个时间点。

DateTimeOffset应被视为应用程序开发的默认日期和时间类型,因为DateTimeOffsets值的使用比DateTime值的使用要常见得多。

查看更多信息,代码示例:http://msdn.microsoft.com/en-us/library/bb384267.aspx

这里有几个要点:

DateTime信息应以UTC格式存储在您的数据库中:

https://web.archive.org/web/20201202215446/http://www.4guysfromrolla.com/articles/081507-1.aspx

当您在Web应用程序中使用DateTime信息时,您需要将其转换为LocalTime:

 DateTime.UtcNow.ToLocalTime();

将从Web服务器的角度将其转换为本地时间。

如果您在一个位置有一个Web服务器,为多个国家/地区的客户端提供服务,那么您将需要在客户端本身上用javascript执行此操作:

 myUTCDate.toLocaleTimeString();

http://www.java2s.com/Code/JavaScript/Date-Time/ConvertDatetoLocaleString.htm

DateTimeOffset将日期时间表示为UTC日期时间。

所以

DateTimeOffset dtoNow = DateTimeOffset.Now;

与相同

DateTimeOffset dtoUTCNow = DateTimeOffset.UTCNow;

这里,dtoNow将等于dtoUTCNow,即使其中一个已初始化为DateTimeOffset。现在,另一个初始化为DateTimeOffset。UTCNow;

因此,DatetimeOffset适合存储UTC的差值或偏移量。

有关更多详细信息,请参阅MSDN。

相关内容

  • 没有找到相关文章

最新更新