字符串转换时间类型
字符串格式如下
20071010122345
要把它转换成时间类型,
知道要把 取出来 赋给struct tm 结构,
但是不知道怎么取出2007 , 10, 10 ,12 这种数据来
tm_year 是int 的
然后struct tm 结果 又怎么变成time_t 呢?
[解决办法]
用sscanf格式化字符串
赋值时注意表示的起至值 年减去100,月减去1
mktime来转成time_t
[解决办法]
指针从前向后遍历,前四个放到year里,再接着两个放到month里,同理往后
[解决办法]
说错了,年不是减去100,是减去1900
[解决办法]
仅供参考
- C/C++ code
#include <time.h>#include <stdio.h>void main() { char *t = " 20071010122345"; long year,month,day; struct tm time1; sscanf(t, "%4d%2d%2d",&year,&month,&day); time1.tm_year = year -1900; time1.tm_mon = month -1; time1.tm_mday = day;}
[解决办法]
第一个: sscanf()从字符串读取数据;
第二个:time_t mktime( struct tm *timeptr );