C++北京时间(字符串)和时间戳相互转换

C++北京时间(字符串)和时间戳相互转换

/*********************************************************************
	Describe :  将北京时间转换成时间戳
	Input    :	pStr						字符串时间
	Output   :	tempTime			整形时间
	*********************************************************************/
	bool TranTime(const char *pStr, time_t &tempTime);
	/*********************************************************************
	Describe :  将时间戳转换成北京时间
	Input    :	tempTime			整形时间
	Output   :	pStr						字符串时间
	*********************************************************************/
	bool TranUtcToStrTime(time_t tempTime,char *pStr);
bool TranStrTimeToTimestamp(const char *pStr, time_t &tampTime)
{
	tm m;
	if(sscanf(pStr, "%04d-%02d-%02dT%02d:%02d:%02d",&m.tm_year, &m.tm_mon, &m.tm_mday, &m.tm_hour, &m.tm_min, &m.tm_sec) != 6)
	{
		printf("sscanf failed, str:%s\n", pStr);
		return false;
	}

	m.tm_year	-=1900;
	m.tm_mon	= m.tm_mon - 1;
	tampTime	= mktime(&m);
	return true;
}

bool TranTimestampToStrTime(time_t tampTime, char *pStr)
{
	tm* stLocal = localtime(&tampTime);					//转为北京时间  
	strftime(pStr, 64, "%Y-%m-%d %H:%M:%S", stLocal);	//转为字符串时间
	return true;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将时间字符串转换时间戳,有多种方法可以实现。引用提供了JavaScript的示例代码,可以根据时间字符串的长度使用不同的方式来获取时间戳。如果时间字符串的长度为10,表示时间戳是以秒为单位的,可以将时间字符串乘以1000转换为以毫秒为单位的时间戳。如果时间字符串的长度为13或19,表示时间戳已经是以毫秒为单位的,可以直接使用时间字符串作为时间戳。然后,可以使用JavaScript的Date对象的方法来获取年、月、日、小时、分钟和秒。如果月、日、小时、分钟、秒的值小于10,则在前面补零。最后,将获取到的年、月、日、小时、分钟和秒拼接成字符串返回即可。 引用是Java的示例代码,可以使用DateTimeUtils类的toLongDateStr方法将时间字符串转换时间戳。这个方法接受一个时间字符串作为参数,并返回一个时间戳字符串。 引用提供了一个封装方法conversionTime,可以将时间字符串转换时间戳。这个方法首先判断传入的时间字符串是否为空,如果为空则返回空字符串。然后,判断传入的时间字符串的格式,如果是以'-'分隔的日期格式,则将'-'替换为'/',以兼容360和IE浏览器。接着,将时间字符串转换为Date对象,并使用Date.parse方法将Date对象转换时间戳。最后,返回时间戳。 综上所述,要将时间字符串转换时间戳,可以根据自己所用的编程语言选择相应的方法实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值