假设字符串日期的格式是YY-MM-DD HH:MI:SS
示例如下:
#include
#include
typedef char DATEVAL[256];
/*
利用系统自带的时间转换函数mktime来检验获取到的时间是否有效
返回-1表示失败
*/
static time_t
make_date( struct tm *Time )
{
time_t t;
if( ( t = mktime( Time ) ) == -1 )
fprintf(stderr, “无效的时间值\n” );
returnt;
}
/*
一个静态的返回值是time_t类型的方法
返回-1表示失败
*/
static time_t
cnv_date(const DATEVAL Date)
{
int y, m, d, h, mi, ss;
struct tm v;
time_t t;
if ( sscanf( Time, "%d-%d-%d %d:%d:%d", &y, &m,&d, &h, &mi, &ss ) != 6 ){
fprintf( stderr, "无效的时间格式\n");
return -1;
}
v.tm_year = y - 1900;
v.tm_mon = m - 1;
v.tm_mday = d;
v.tm_hour= h;
v.tm_min= mi;
v.tm_sec= ss;
return make_date( &v );
}
int main()
{
time_t t;
DATEVAL Time = "2014-01-13 11:48:52";
if( ( t = cnv_date ( Time ) ) == -1 )
return-1;
printf(“时间转换成功\n” );
return0;
}