如何实现秒数和日期之间的转换
我想要进行对时方面的工作,先把日期转换为距标准时间的秒数,计算完成后在转化为日期(包括时分秒)。听说有库函数可以利用,具体哪个库,是time.h吗?怎么用啊?急求啊!给定年月日...展开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <stdio.h> #include <stdlib.h> #include <time.h> /************************************************************************* * @brief : 日期这字符串转为秒数 * @inparam : |__ pszDate 2010/04/12/23/59/59、 2010-04-12 23:59:59类似字符串 * @outparam : NA * @return : |__ time_t *************************************************************************/ time_t DateStr2Sec( char * pszDate) { struct tm tmDate = {0}; tmDate.tm_year = atoi (pszDate) - 1900; tmDate.tm_mon = atoi (pszDate + 5) - 1; // 注意月份是从0开始的 tmDate.tm_mday = atoi (pszDate + 8); // 月份日期是从1开始的 tmDate.tm_hour = atoi (pszDate + 11); tmDate.tm_min = atoi (pszDate + 14); tmDate.tm_sec = atoi (pszDate + 17); return mktime (&tmDate); } /************************************************************************* * @brief : 时间转换成字符串 * @inparam : |__ iTime 时间戳 * @outparam : pszTime * @return : NA *************************************************************************/ void TimeFormatInt2Str( int iTime, char *pszTime) { time_t tCurrent; struct tm tmFmtDatetime; struct tm *ptmFmtDatetime = NULL; if (iTime == 0) { return ; } tCurrent = iTime; ptmFmtDatetime = localtime_r(&tCurrent, &tmFmtDatetime); if (ptmFmtDatetime == NULL) { return ; } sprintf (pszTime, "%04d-%02d-%02d %02d:%02d:%02d" , ptmFmtDatetime->tm_year+1900, ptmFmtDatetime->tm_mon+1, ptmFmtDatetime->tm_mday, ptmFmtDatetime->tm_hour, ptmFmtDatetime->tm_min, ptmFmtDatetime->tm_sec ); } |