gmtime与localtime的区别

Posted 流浪孤儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gmtime与localtime的区别相关的知识,希望对你有一定的参考价值。

目录

gmtime函数

linux环境下:

window环境下

localtime函数

gmtime函数

gmtime转换的时间是UTL时间,与北京时间相差了8个小时

如果你想要得到北京时间,不建议你将gmtime转换后的时间直接加上八个小时

linux环境下:

执行结果:

发现了吗?这个时间形式上是不规范的

window环境下

#pragma warning(disable:4996)
#include<iostream>
#include<ctime>
using namespace std;

int main(int argc, char **argv)
	char myStr[25] =  0 ;//用来保存北京时间    
	//time_t cur_t = time(nullptr);//获取当前时间,以时间戳形式返回  
	time_t cur_t = 1647713282;//不使用time获取当前时间戳了
	struct tm *t;
	t = gmtime(&cur_t);
	t->tm_hour += 8;//将UTF时间转为北京时间    
	std::string myFormat = "%Y-%m-%d:%H:%M:%S";
	strftime(myStr, sizeof(myStr), myFormat.c_str(), t);
	cout << myStr << endl;
	return 0;

直接报错了,可以看到windows下更严格一些,规定了tm_hour的范围

 如果我们手动进行时间格式转换,那太麻烦了,还好有一个函数可以帮我们解决这个问题

localtime函数

 头文件:time.h

函数原型:

将时间戳转为北京时间 ,这就是localtime与gmtime函数的区别

执行结果: 

 

以上是关于gmtime与localtime的区别的主要内容,如果未能解决你的问题,请参考以下文章

gmtime与localtime的区别

在PHP中gmtime()与time()区别

ESP32-IDF03-2 系统-系统时间

时间模块

Perl的timelocaltime和gmtime函数

time