STM32 KEIL MDK 本地时间和Unix timestamp相互转换

//时间测试,将unix timestamp 和本地时间进行转换
//0x5a603bfe   北京时间 2018/1/18 14:17:34
/* 下面打印是的格林威治标准时间
年:118 
月:0 
日:18 
时:6 
分:17 
秒:34

格林威治标准时间比北京时间晚8个小时
*/
void time_test(void)
{
	//将unix timestamp 转为本地时间
	struct tm *gm_date;
	time_t seconds=0x5a603bfe;//unix timestamp
	gm_date = localtime(&seconds);
	printf("年:%d \r\n",gm_date->tm_year);
	printf("月:%d \r\n",gm_date->tm_mon);
	printf("日:%d \r\n",gm_date->tm_mday);
	printf("时:%d \r\n",gm_date->tm_hour);
	printf("分:%d \r\n",gm_date->tm_min);
	printf("秒:%d \r\n",gm_date->tm_sec);
	
	//将本地时间转为unix timestamp 
	gm_date->tm_year=118;//2018年,+1900就是现在的年
	gm_date->tm_mon=3;//4月
	gm_date->tm_mday=11;
	gm_date->tm_hour=10;
	gm_date->tm_min=8;
	gm_date->tm_sec=30;
	
	seconds=mktime(gm_date);
	printf("unix timestamp:%08x \r\n",seconds);
	//unix timestamp:5acdde9e 
	//北京时间:	2018/4/11 18:8:30
	
}

你可能感兴趣的:(Stm32)