首页 > 编程知识 正文

utc时间 gmt时间,utc时间和时间戳

时间:2023-05-03 17:43:35 阅读:258949 作者:2073

UTC: Universal Time Coordinated 协调世界时,又称世界标准时间。

GMT: Greenwich Mean Time 格林尼治平均时。


UTC与GMT:

UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示 这两者几乎是同一概念。它们都是指的格林尼治标准时间,只不过UTC的称呼更为正式一点。两者的区别在于前者是一个天文上的概念,而后者是基于一个原子钟。

UTC与本地时间 UTC + 时区差 = 本地时间 时区差东为正,西为负。在此,把东八区时区差记为 +0800, UTC + (+0800) = 本地(北京)时间 (1) 那么,UTC = 本地时间(北京时间))- 0800 (2) 0942 - 0800 = 0142 即UTC是当天凌晨一点四十二分二十二秒。如果结果是负数就意味着是UTC前一天,把这个负数加上2400就是UTC在前一天的时间。例如,本地(北京)时间是 0432 (凌晨四点三十二分),那么,UTC就是 0432 - 0800 = -0368,负号意味着是前一天, -0368 + 2400 = 2032,既前一天的晚上八点三十二分。 

UTC 与 Unix时间戳

在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。

题外话:你会碰到Y2038问题,2038年1月19日凌晨3:14:07秒(UTC),从1970年1月1日午夜开始算是2147483647秒.是 2的31次方-1. 也就是32位系统表示带符号整数的情况下能够表示的最大整数. 这个短视问题没有办法解决,只能透过硬件升级,比如升级到64位,那么表示带符号整数的范围就是 2的-63 到 2的63次方-1 足够用上2920亿年了... UTC时间、GMT时间、本地时间、Unix时间戳 linux C 实现. #include <stdio.h> #include <time.h> int main(){ time_t timep; //时间的秒数类型...used for time in seconds struct tm *p; //时间数组 time(&timep);//获取本地unix时间戳 printf("time()=:%dn",timep); p = localtime(&timep); //将时间化为结构.传入 时间戳的指针,返回 tm类型的结构指针. timep = mktime(p); //使用mktime 能够将tm类型的时间转为 unix时间戳. printf("time()->localtime()->mktime()=%dn",timep); return 0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。