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

分析问题

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

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

  在很多情况下,当地时间和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();
        }
    }
}

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

注意

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

答案

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

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

时间: 2024-08-01 01:21:02

什么是UTC时间,如何转换到UTC时间的相关文章

Java之格林威治时间格式转换成北京时间格式

Java之格林威治时间格式转换成北京时间格式 package com.mtons.mblog; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class DateUtils { /** * 支持jdk1.6的写法<br/> * 解析2015-12-27T14:20:34+08:00格式类型的时

iOS日期转换之UTC/GMT时间格式

GMT只需要将代码中的UTC替换为GMT即可 //将本地日期字符串转为UTC日期字符串 //本地日期格式:2013-08-03 12:53:51 //可自行指定输入输出格式 -(NSString *)getUTCFormateLocalDate:(NSString *)localDate { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //输入格式 [dateFormatter setDateFormat:@"

js将UTC时间转化为当地时区时间

我们在进行网站开发的时候有可能会涉及到国外的用户或者用户身在国外,这时就会存在时差问题,比如说我们在中国的时间是08:00,但是此时韩国的时间是09:00,如果在网页上需要进行相关显示的话就会出现问题,那作为一个前端该怎么解决这个问题呢? 前端通过请求获取的时间一般都是时间戳格式,这个时间戳一般就是UTC时间(*UTC:最接近标准时间的一个时间标准),而我们在网页上需要显示的是GMT时间,下面就是根据本地时间获得GMT时间和任意时区的时间函数: 1.将本地时间转化成任意时区的时间(如:通过本地时

老大叫我改主数据库(MySQL)的时间!!!--UTC问题

由于我公司另外一个运维小伙伴装系统的时候,勾选了UTC这个东东.(会导致慢八个小时的时间误差)结果才有了这一次逗比的经历. 1.系统时间慢八个小时,我发现不对劲后,就改回来了,可参考我的另外一篇博客. 2.数据库慢了八个小时,当时并没有意识到这个问题. 突然在做实验,老大喊我,说MySQL时间不对劲,让我帮忙解决一下.啥?不会吧,当时首先是这个反正,去看看后,果然时间不对,和本地时间比较一下,相差八个小时.我顿时反应就是,又是那UTC惹的祸.好吧,排查吧,毕竟先解决问题才是硬道理啊. 了解: 5

将服务器时间类型改为UTC(0000)

方法一: # timedatectl  set-timezone UTC #  timedatectl set-time "YYYY-MM-DD HH:MM:SS" #  timedatectl set-time   "HH:MM:SS" # timedatectl 我们可以看到,服务器时间类型更改为UTC了 # ll   /etc/locatime lrwxrwxrwx. 1 root root 25 1月  14 08:30 /etc/localtime -&g

MySQL 获得当前日期时间(以及时间的转换)

1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数 current_timestamp()   current_timestamp localtime()   localtime localtimestamp()   localtimestamp     这些日期时间函数,都等同于 now().鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数.   1.2 获得当前日期+时

C#返回时间格式转换成 js 字符串

在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有点点小困难.最近使用到,小小研究了下,参照网络中的写法,解决方法如下:1.先将C#的格式转换成js 的datetime形式. /* *将C#返回的日期格式进行转换 将 类似 Thu Jul 9 23:14:53 UTC+0800 2015 转换成 2015-05-06 *Parameters: *o

Sql日期时间格式转换

Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONV

格林时间转换成正常时间

[email protected]:~> date +%s 1414741902 oracle中怎么把这个1414741902转换成正常时间格式 select Numtodsinterval(1414741902+TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone), 1, 3)) * 3600, 'second')+to_date('1970-1-1', 'yyyy/mm/dd') from dual; select Numtodsinterval(14147