码迷,mamicode.com
首页 > 其他好文 > 详细

什么是UTC时间,如何转换到UTC时间

时间:2014-08-19 16:10:14      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   strong   2014   

分析问题

  UTC其实就是格林威治标准时间(GMT),它是在0度经度测量到的时间,每个地域的本地时间都和UTC时间有一个固定的时间差,有些地域实行夏令时,则那些地域的本地时间就是UTC时间加上时差再加上夏令时的影响。

  在本书前面的章节中已经介绍了,DateTime中用来存储时间的64位长整数只使用了低62位来代表时间,而高两位则是枚举的标志。DateTime的Kind属性公开了这个标志,Kind的代码更好地说明了这一特性:

 bubuko.com,布布扣

  在很多情况下,当地时间和UTC时间需要进行相互转换。DateTime结构提供了ToUniversalTime和ToLocalTime两个方法,这两个方法不仅会改变存储的时间,并且会更改Kind标志。以下代码展示了这两个方法的使用方法。

using System;

namespace Test
{
    class UTCLocal
    {
        static void Main()
        {
            DateTime date = DateTime.Now;
            Console.WriteLine("当前本地时间:{0}", date.ToString());
            Console.WriteLine("Kind标志:{0}", date.Kind.ToString());

            //转换到UTC时间
            DateTime newDate = date.ToUniversalTime();
            Console.WriteLine("转换到UTC时间:{0}", newDate.ToString());
            Console.WriteLine("新的Kind标志:{0}", newDate.Kind.ToString());

            //转换到本地时间
            DateTime backDate = newDate.ToLocalTime();
            Console.WriteLine("转换回本地时间:{0}", backDate.ToString());
            Console.WriteLine("转换回后的Kind标志:{0}", backDate.Kind.ToString());

            Console.Read();
        }
    }
}

  如读者所见的,两个方法的操作非常简便,但不要忽视了这两个方法对标志的修改,下面是程序的执行结果

bubuko.com,布布扣

注意

  本地时间和UTC时间的转换是会考虑夏令时的。

答案

  UTC是格林威治标准时间(GMT),它是在0度精度测量到的时间。通过ToUniversalTime和ToLocalTime方法可以在本地时间和UTC时间之间进行转换。两个方法在转换时会相应地设置保存时间的64位整数的高两位标志,并且转换的算法考虑了夏令时。

 

什么是UTC时间,如何转换到UTC时间,布布扣,bubuko.com

什么是UTC时间,如何转换到UTC时间

标签:style   blog   http   color   使用   os   strong   2014   

原文地址:http://www.cnblogs.com/wangjinpeng-study/p/3922071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!