(原创)GM时间跟本地时间的互相转换

本文介绍了如何在C/C++中进行GM时间与本地时间的相互转换。在Windows环境下,由于缺少timegm函数,可以利用mktime函数结合timezone全局变量来实现从GM时间到本地时间的转换。
摘要由CSDN通过智能技术生成

代码直接上了,当gm时间转本地时间时,在windows下面没有timegm函数,但是可以通过mktime函数减去timezone变量(timezone是C runtime libary的全局变量)来获取

bool LocalTimeToUTC(MY_TIME_T *pTime)
{
	struct tm newtime;
	newtime.tm_year = pTime->u16Year  - 1900;
	newtime.tm_mon = pTime->u8Month - 1;
	newtime.tm_mday = pTime->u8Day;
	newtime.tm_hour = pTime->u8Hour;
	newtime.tm_min = pTime->u8Minute;
	newtime.tm_sec = pTime->u8Second;
	newtime.tm_wday = 0;
	newtime.tm_yday =0;
	newtime.tm_isdst = 0;

	time_t time = mktime(&newtime);
	struct tm *pnewtime;
	pnewtime = gmtime(&time);

	if(pnewtime != NULL)
	{
		pTime->u16Year = pnewtime->tm_year + 1900;
		pTime->u8Month = pnewtime->tm_mon + 1;
		pTime->u8Day = pnewtime->tm_mday;
		pTime->u8Hour = pnewtime->tm_hour;
		pTime->u8Minute = pnewtime->tm_min;
		pTime->u8Second = pnewtime->tm_sec;
	}
	return true;
}

bool UTC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值