TimeZone 时区 (JS .NET JSON)

来源参考 : http://www.cnblogs.com/qiuyi21/archive/2008/03/04/1089456.html

整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。在本文中,UTC与GMT含义完全相同。

做网页开发时,我们经常会处理一些时间格式.

 

基本上有3中情况 : 

比如 服务器设在美国(UTC-6.00), 公司在中国(UTC+8.00) , 客户在夏威夷访问(UTC-10.00)

那么我们有好几种可能处理的方式,比如希望所有业务都已中国的时间为标准。

当序列化一个日期对象后,它会变成一个string "2014-11-19T23:00:25.571Z" 或者 "2014-11-20T07:02:20.6001565+08:00"

区别在最后的字, Z表示这是个UTC时间,+08:00 则表示这是个带有时差的时间(本地时间) 我们拿来 2014-11-20T07:02:20.6001565 - (+8:00) 就可以算出UTC了。

那么默认情况下,javascript的JSON.stringify 会把我们的时间对象转换成UTC时间,即 "2014-11-19T23:00:25.571Z" 这样的格式。

而 new Date("string") 则在遇到 “2014-11-19T23:00:25.571Z"格式时会转换成本地时间。

所在JS中你序列化后,反序列化回来,时间对象的值是一样。

但是,当我们和服务器沟通时,就要注意了。

比如当我使用 json.net 默认情况下反序列化 JsonConvert.DeserializeObject<List<DateTime>>(json);

它并不会对UTC时间做特别转换等。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。