随心所欲的DateTime续--变化的时区(1)
<div id="cnblogs_post_body">上篇提到DateTime的显示格式,忽略了一个重要元素--时区。多时区用户的项目的时间显示问题常常被人诟病,一旦时间跟金钱挂钩,出了问题就不是客服投诉骂两句那么简单了。那么究竟怎样才能构建一个满足多时区用户的项目呢?这要先从时区说起。时区知多少
http://images.cnblogs.com/cnblogs_com/hkncd/201212/201212211334178335.gif
如图,全球被划分为24个时区,0时区为基准,每个时区相隔1小时,往东则加时间,往西则减时间,这种记时方式成为UTC(协调世界时)。比如北京在东边第八个时区,简称东八区,而东八区可简写为“UTC +8”。
在人类科技尚不发达的早期,人们用天文学知识计算时区时间,称为GMT(格林威治时间)。这种方式略有误差,但日常生活并不影响,后来随着科技的进步渐渐被UTC取代,但依然有人习惯性称GMT时间,因此,对我们来说,UTC和GMT意思等同。
在.Net中,用DateTime的UtcNow属性可快速获取0时区的时间,以我们所处的“UTC +8”为例,两者相差8小时:
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3460d32f-dae0-4b80-9692-3321968e8aa1" class="wlWriterEditableSmartContent"> <div class="code-container"> <div style="background-color: #ffffff; max-height: 500px; overflow: auto; padding: 2px 5px;">Console.WriteLine(DateTime.Now); // 2012/12/21 11:50:37
Console.WriteLine(DateTime.UtcNow); // 2012/12/21 3:50:37
页:
[1]