unix time stamp(时间戳)和常规时间相互转换的C++代码

先来扫盲一下: unix time stamp翻译为时间戳, 就是从1970年1月1日00:00::00以来的秒数。

从unix time stamp到常规时间:

#include <iostream>
#include <ctime>
using namespace std;
 
void unixTime2Str(int n, char strTime[], int bufLen)
{
    struct tm tm = *localtime((time_t *)&n);
    strftime(strTime, bufLen - 1, "%Y-%m-%d %H:%M:%S", &tm);
	strTime[bufLen - 1] = '\0';
}
 
int main(void)
{
	char strTime[100] = {0};
	int now = 1444401700;
	unixTime2Str(now, strTime, sizeof(strTime));
	cout << strTime << endl;
 
    return 0;
}

结果为:2015-10-09 22:41:40

从常规时间到unix stamp time的转换:

#include <iostream>
#include <ctime>
using namespace std;
 
time_t strTime2unix(char timeStamp[])
{
    struct tm tm;
    memset(&tm, 0, sizeof(tm));
    
    sscanf(timeStamp, "%d-%d-%d %d:%d:%d", 
           &tm.tm_year, &tm.tm_mon, &tm.tm_mday,
           &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
 
    tm.tm_year -= 1900;
    tm.tm_mon--;
 
    return mktime(&tm);
}
 
int main()
{
	char timeStamp[100] = "2015-10-09 22:41:40";
  	time_t t = strTime2unix(timeStamp);
    cout << t << endl;
    
	// additional
	cout << ctime(&t) << endl;
 
  	return 0;
} 

结果为:

1444401700
Fri Oct 09 22:41:40 2015

此文章转载自:https://blog.csdn.net/stpeace/article/details/49008877

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值