C/C++中time_t、tm、字符串之间的转换

1、字符串到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>中提供的函数很简单,网上资料也很多,故不再赘述。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值