time_t 与字符串之间的相互转换

time_t 与字符串之间的相互转换


引言:time_t和tm是定义在同一个库文件里的一对对应的类型,FILETIME和 SYSTEMTIME是定义在另一个同一个库文件里的一对对应的类型。类型互转时最好在同一个库文件里的一对对应的类型间转换。



[cpp]  view plain  copy
  1. 方法1, SYSTEMTIME 类型  
  2.   
  3. //指定time_t类型的时间,格式化为YYYYMMDDHH24MISS型的字符串  
  4. void FormatTime(SYSTEMTIME &tm1)  
  5. {  
  6.   TCHAR * szTime = new TCHAR[128];  
  7.   GetLocalTime(&tm1);  
  8.   _stprintf( szTime, _T("%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d"),  
  9.   
  10.      tm1.wYear, tm1.wMonth+1, tm1.wDay,  
  11.      tm1.wHour, tm1.wMinute,tm1.wSecond);  
  12.     
  13.   delete szTime;  
  14.   szTime = NULL;  
  15. }  
  16.   
  17. //指定YYYYMMDDHH24MISS型的时间,格式化为time_t型的时间  
  18. SYSTEMTIME FormatTime2(TCHAR * szTime)  
  19. {  
  20.   SYSTEMTIME tm1;  
  21.   _stscanf( szTime, _T("%4d-%2d-%2d %2d:%2d:%2d"),     
  22.     &tm1.wYear,   
  23.     &tm1.wMonth,   
  24.     &tm1.wDay,   
  25.     &tm1.wHour,   
  26.     &tm1.wMinute,  
  27.     &tm1.wSecond );  
  28.     return time1;  
  29. }  
  30.   
  31.    
  32.   
  33. 方法2, time_t类型  
  34. //指定time_t类型的时间,格式化为YYYYMMDDHH24MISS型的字符串  
  35. void FormatTime(time_t time1, char *szTime)  
  36. {  
  37.     struct tm tm1;  
  38.   
  39.   
  40. #ifdef WIN32  
  41.     tm1 = *localtime(&time1);  
  42. #else  
  43.     localtime_r(&time1, &tm1 );  
  44. #endif  
  45.     sprintf( szTime, "%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d",  
  46.            tm1.tm_year+1900, tm1.tm_mon+1, tm1.tm_mday,  
  47.              tm1.tm_hour, tm1.tm_min,tm1.tm_sec);  
  48. }  
  49.   
  50.   
  51. //指定YYYYMMDDHH24MISS型的时间,格式化为time_t型的时间  
  52. time_t FormatTime2(char * szTime)  
  53. {  
  54.     struct tm tm1;  
  55.     time_t time1;  
  56.   
  57.   
  58.     sscanf(szTime, "%4d%2d%2d%2d%2d%2d",      
  59.           &tm1.tm_year,   
  60.           &tm1.tm_mon,   
  61.           &tm1.tm_mday,   
  62.           &tm1.tm_hour,   
  63.           &tm1.tm_min,  
  64.           &tm1.tm_sec);  
  65.           
  66.     tm1.tm_year -= 1900;  
  67.      tm1.tm_mon --;  
  68.   
  69.   
  70.     tm1.tm_isdst=-1;  
  71.     
  72.     time1 = mktime(&tm1);  
  73.     return time1;  
  74. }  

参考:
time_t 转换 百度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值