Linux时间戳、日期转换函数:
#include <stdio.h>
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
time_t date_to_timestamp(char *date, char *pfmt)
{
struct tm t;
strptime(date, pfmt, &t);
time_t tt = mktime(&t);
return tt;
}
string timestamp_to_date(time_t tt)
{
struct tm *t = localtime(&tt);
char dateBuf[128];
snprintf(dateBuf, sizeof(dateBuf), "%04d-%02d-%02d %02d:%02d:%02d", t->tm_year+1900,
t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
string date(dateBuf);
return date;
}
int main()
{
/*
time_t tt = 1372225160;
string date = timestamp_to_date(tt);
cout<<"date:"<<date.c_str()<<endl;
*/
char *date = "2013-06-26 13:39:20";
char *pfmt = "%Y-%m-%d %H:%M:%S";
time_t tt = date_to_timestamp(date, pfmt);
cout<<"time_t:"<<tt<<endl;
return 0;
}