C/C++中time_t、tm、字符串之间的转换
2011-08-05 12:40
423 查看
1、字符串到time_t的转换
2、字符串到tm到time_t的转换
BOOL GetStrFromTime(time_t iTimeStamp, char *pszTime) { tm *pTmp = localtime(&iTimeStamp); if (pTmp == NULL) { return FALSE; } sprintf(pszTime, "%d-%d-%d %d:%d:%d", pTmp->tm_year + 1900, pTmp->tm_mon + 1, pTmp->tm_mday, pTmp->tm_hour, pTmp->tm_min, pTmp->tm_sec); return TRUE; }这里的time_t可以传入一个unsigned int类型的参数,其表示的含义是1970.1.1 0:0:0开始计时的秒数,返回字符串结构如“2011-08-05 00:00:00”。
2、字符串到tm到time_t的转换
unsigned int GetTimeStampByStr( const char* pDate, int32 iNameSize ) { const char* pStart = pDate; char szYear[5], szMonth[3], szDay[3], szHour[3], szMin[3], szSec[3]; szYear[0] = *pDate++; szYear[1] = *pDate++; szYear[2] = *pDate++; szYear[3] = *pDate++; szYear[4] = 0x0; ++pDate; szMonth[0] = *pDate++; szMonth[1] = *pDate++; szMonth[2] = 0x0; ++pDate; szDay[0] = *pDate++; szDay[1] = *pDate++; szDay[2] = 0x0; ++pDate; szHour[0] = *pDate++; szHour[1] = *pDate++; szHour[2] = 0x0; ++pDate; szMin[0] = *pDate++; szMin[1] = *pDate++; szMin[2] = 0x0; ++pDate; szSec[0] = *pDate++; szSec[1] = *pDate++; szSec[2] = 0x0; tm tmObj; tmObj.tm_year = atoi(szYear)-1900; tmObj.tm_mon = atoi(szMonth)-1; tmObj.tm_mday = atoi(szDay); tmObj.tm_hour = atoi(szHour); tmObj.tm_min = atoi(szMin); tmObj.tm_sec = atoi(szSec); tmObj.tm_isdst= -1; return mktime(&tmObj); }这里是完成将诸如"2011-01-01 00:00:00"格式的日期字符串转换为时间戳,更多关于<time.h>中提供的函数很简单,网上资料也很多,故不再赘述。
相关文章推荐
- Linux C/C++时间字符串与time_t之间的转换方法(转)
- Linux C/C++时间字符串与time_t之间的转换方法(转)
- C++中数字与字符串之间的转换
- time_t 与字符串之间的相互转换
- C++ time_t与string之间转换的工具类
- C++字符串类型和数字之间的转换
- time_t tm timeval 和 时间字符串的转换
- C++中Ansi、Unicode、UTF8字符串之间的转换和写入
- c风格字符串与c++风格字符串之间转换
- C++抽象编程——字符串与整数之间的相互转换详解
- time_t tm timeval 和 时间字符串的转换
- C++枚举与字符串之间的转换
- C++中数字与字符串之间的转换
- time_t tm timeval 和 时间字符串的转换方法
- C++中数字与字符串之间的转换(使用CString.Format或者sprintf)
- C++ C字符串与time_c和time_c与C字符串之间的转换
- C++中Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
- C++中数字与字符串之间的转换
- C++中数字与字符串之间的转换
- C++中字符串与整型浮点型之间的转换