博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++时间戳转化(涉及GMT CST时区转化)
阅读量:6493 次
发布时间:2019-06-24

本文共 1765 字,大约阅读时间需要 5 分钟。

问题由来

时间戳转换(时间戳:自 1970 年1月1日(00:00:00 )至当前时间的总秒数。)

#include 
#include
int main(int argc, const char * argv[]){ time_t t; struct tm *p; t=1408413451; p=gmtime(&t); char s[80]; strftime(s, 80, "%Y-%m-%d %H:%M:%S", p); printf("%d: %s\n", (int)t, s);}

结果

1408413451      2014-08-19 01:57:1408384651

可是利用命令在linux终端计算的结果不一

[###t]$ date -d @1408413451Tue Aug 19 09:57:31 CST 2014

通过比较发现,两者正好差8个小时,CST表示格林尼治时间,通过strftime()函数可以输出时区,改正如下

#include 
#include
int main(int argc, const char * argv[]){ time_t t; struct tm *p; t=1408413451; p=gmtime(&t); char s[80]; strftime(s, 80, "%Y-%m-%d %H:%M:%S::%Z", p); printf("%d: %s\n", (int)t, s);}

结果

1408413451: 2014-08-19 01:57:31::GMT

 

深究

GMT(Greenwich Mean Time)代表格林尼治标准时间。十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所正式成立,通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.)的由来。

CST却同时可以代表如下 4 个不同的时区:

Central Standard Time (USA) UT-6:00Central Standard Time (Australia) UT+9:30China Standard Time UT+8:00Cuba Standard Time UT-4:00

可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。

好了两者差8个小时(CST比GMT晚/大8个小时),GMT+8*3600=CST,代码如下

#include 
#include
int main(int argc, const char * argv[]){ time_t t; struct tm *p; t=1408413451; p=gmtime(&t); char s[80]; strftime(s, 80, "%Y-%m-%d %H:%M:%S::%Z", p); printf("%d: %s\n", (int)t, s); t=1408413451 + 28800; p=gmtime(&t); strftime(s, 80, "%Y-%m-%d %H:%M:%S", p); printf("%d: %s\n", (int)t, s); return 0;}

结果

1408413451: 2014-08-19 01:57:31::GMT1408442251: 2014-08-19 09:57:31

linux平台

Tue Aug 19 09:57:31 CST 2014

  

 

转载地址:http://etkyo.baihongyu.com/

你可能感兴趣的文章
排序算法之插入排序
查看>>
AJAX 跨域请求
查看>>
Python的Web开发利器——Django安装使用经验谈
查看>>
现代中小企业IT基础平台建设 - 完整案例实战(09_附录B)
查看>>
二分查找
查看>>
js 函数
查看>>
成为贵网站会员快八年了
查看>>
58数据库3_transaction
查看>>
MySQL--------基于binlog实现闪回最佳实战
查看>>
01-查询Oracle中所有用户信息
查看>>
每次打开Microsoft office word2010时都要显示安装配置文件的问题
查看>>
Windows 2008(X64)安装32位SQL2005的ASP.NET注册警告解决方法
查看>>
树讲解(3)——联合权值
查看>>
BigDecimal
查看>>
use the purchases page to try again
查看>>
批处理用WINRAR只压缩某类型的文件
查看>>
我的友情链接
查看>>
Linux上vim编辑器快速入门
查看>>
手工kill病毒小方法--转自51CTO论坛
查看>>
Selenium代码示例
查看>>