如何解决mktime只能获得1970年之后的time_t值???time_t GetTimeFromString( const char* strTime ){tm tmO
如何解决mktime只能获得1970年之后的time_t值???
time_t GetTimeFromString( const char* strTime )
{
tm tmObj;
sscanf( strTime, "%4d-%02d-%02d %02d:%02d:%02d",
&st.tm_year, &st.tm_mon, &st.tm_mday, &st.tm_hour, &st.tm_min, &st.tm_sec );
tmObj.tm_year -= 1900;
tmObj.tm_mon -= 1;
tmObj.tm_isdst -= 1;
return mktime( &tmObj );
}
void main()
{
time_t time1 = GetTimeFromString( "1960-01-01 00:00:00" ); //-1
time_t time2 = GetTimeFromString( "1970-01-01 00:00:00" ); //-1
time_t time3 = GetTimeFromString( "1980-01-01 00:00:00" ); //315504000
}
目的就是将一个时间字符串转换成time_t类型
也知道了 如果使用mktime来转换只能得到1970年之后的时间 否则就为-1
有什么办法可以使时间的范围更大一点呢?
也就是填大于等于"1970-01-01 00:00:00"时 能够得出正常的time_t值,而不是-1!
谢谢
[解决办法]
struct tm可解决
