linux把日期date转换为毫秒时间戳(struct tm)mktime()

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux把日期date转换为毫秒时间戳(struct tm)mktime()相关的知识,希望对你有一定的参考价值。

需要引用的头文件请用man文档查询

			//arnold add 20220427 修改target时间戳为正确时间戳 start
					//memset(frm_get->timeStamp, 0, sizeof(unsigned long long));
					
					
					unsigned long long test_timestamp_ms = 0;
					struct tm stm = 0;
					stm.tm_year=frm_get.dateTime.year-1900;	//自行获取前面的年月日时分秒还有毫秒
					stm.tm_mon=frm_get.dateTime.month-1;
					stm.tm_mday=frm_get.dateTime.day;
					stm.tm_hour=frm_get.dateTime.hour - 8;	//还不太了解怎么设置时区,我们是东八区,所以暴力减8小时
					stm.tm_min=frm_get.dateTime.minute;
					stm.tm_sec=frm_get.dateTime.second;
					test_timestamp_ms = (unsigned long long)mktime(&stm)*1000 + frm_get.dateTime.milliSecond;
					
					printf("print date: [%d%02d%02d-%02d:%02d:%02d] [%03d]\\n", frm_get.dateTime.year, frm_get.dateTime.month, frm_get.dateTime.day, frm_get.dateTime.hour, frm_get.dateTime.minute, frm_get.dateTime.second, frm_get.dateTime.milliSecond);	//补零操作
					printf("date to timestamp is [%llu]\\n", test_timestamp_ms);	//unsigned long long用%llu打印



			//arnold add 20220427 修改target时间戳为正确时间戳 end

输出结果:

参考文章1:C标准时间与时间戳的相互转换

关于进阶时区设置,参考:时间日期与时间戳转换(Linux C)(没看。。。)

参考文章3:KYSL 修改hikflow_demo中target的时间戳为正确时间(有接口调用代码)

以上是关于linux把日期date转换为毫秒时间戳(struct tm)mktime()的主要内容,如果未能解决你的问题,请参考以下文章

js怎么把时间戳转换为日期格式

java中怎么把Long转换成日期格式

数据库中如何把毫秒格式的时间转换成年月日格式

js怎么把unix毫秒数转化为具体的Date啊

AIX 转换时间戳

js时间戳怎么转成日期格式