记录下,方便日后直接使用
直接上源码:
先来个结构体定义:
struct SystemTime { int year; ///< 年。 int month; ///< 月,January = 1, February = 2, and so on. int day; ///< 日。 int wday; ///< 星期,Sunday = 0, Monday = 1, and so on int hour; ///< 时。 int minute; ///< 分。 int second; ///< 秒。 int isdst; ///< 夏令时标识。 };
转换函数:
/* 功能: 将time_t格式的字符串转换成具体的时间, 存放在SystemTime结构体中 return: true-成功, false-失败 sysTime:[out] 保存转换结果 time_t_str: time_t形式的字符串表示方式 */ bool getSystemTime(SystemTime& sysTime, const char* time_t_str) { if(time_t_str && time_t_str[0]) { time_t tt; sscanf(time_t_str, "%lu", &tt); tm* p = localtime(&tt); sysTime.year = p->tm_year + 1900; sysTime.month = p->tm_mon + 1; sysTime.day = p->tm_mday; sysTime.hour = p->tm_hour; sysTime.minute = p->tm_min; sysTime.second = p->tm_sec; return true; } return false; }
调用函数:
void test2() { const char* t = "1311906769"; // 距1970-1-1 08:00:00的秒数(中国是东8区, 所以是8点) SystemTime s1; getSystemTime(s1, t); printf("%04d-%02d-%02d %02d:%02d:%02d\n", s1.year, s1.month, s1.day, s1.hour, s1.minute, s1.second); }
运行结果:
2011-07-29 10:32:49