time_t 问题 如何把char * 的字符串日期转换成time_t类型?如 "2/28/2006 13:1:30" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char * date = "2/28/2006 13:1:30"; COleDateTime dt; if ( dt.ParseDateTime(date) ) { cout << (LPCSTR)dt.Format() << endl; CTime t ( dt.GetYear(), dt.GetMonth(), dt.GetDay(), dt.GetHour(), dt.GetMinute(), dt.GetSecond() ); cout << t.GetYear() << endl; } time_t t1 = t.GetTime(); 如果不用MFC,怎么做?因为我现在做的这个项目不能用MFC 可以. 该函数para参数必须为yyyymmddhhmiss类型, 例如20060223131313//返回time_tint diffTime (char para[], int n){ char s_time[128], s_sec[3], s_min[3], s_hour[3], s_day[3], s_mon[3], s_year[5]; struct tm ptr; time_t lt; strncpy (s_year, para, 4); strncpy (s_mon, ¶[4], 2); strncpy (s_day, ¶[6], 2); strncpy (s_hour, ¶[8], 2); strncpy (s_min, ¶[10], 2); strncpy (s_sec, ¶[12], 2); ptr.tm_sec = atoi (s_sec); ptr.tm_min = atoi (s_min); ptr.tm_hour = atoi (s_hour); ptr.tm_mday = atoi (s_day); ptr.tm_mon = atoi (s_mon) -1; ptr.tm_year = atoi (s_year) - 1900; lt = mktime (&ptr) + n; ptr = *localtime (<); sprintf (s_time, "%2d%02d%02d%02d%02d%02d", ptr.tm_year + 1900, ptr.tm_mon + 1, ptr.tm_mday, ptr.tm_hour, ptr.tm_min, ptr.tm_sec); strcpy (para, s_time); return lt;} /*=========================================================================函数说明:转化字符串到时间============================================================================*/time_t GetTimeFromChar( CString szDay, CString szTime ){ CString strDay = szDay; CString strTime = szTime; tm stTime; ///////////////日期/////////////////////// stTime.tm_year = (atoi)(strDay.Left( strDay.Find( '-' )) ) - 1900; strDay.Delete( 0, strDay.Find( '-' )+1 ); stTime.tm_mon = (atoi)(strDay.Left( strDay.Find( '-' )) ) - 1; strDay.Delete( 0, strDay.Find( '-' ) + 1 ); stTime.tm_mday = atoi( strDay ); ////////////////时间//////////////////////// stTime.tm_hour = (atoi)(strTime.Left( strTime.Find( ':' )) ); strTime.Delete( 0, strTime.Find( ':' )+1 ); stTime.tm_min = (atoi)(strTime.Left( strTime.Find( ':' )) ); strTime.Delete( 0, strTime.Find( ':' ) + 1 ); stTime.tm_sec = atoi( strTime ); return mktime( &stTime ); } 关于WIN7 GDI 蛋疼的问题!!! 怎么获取到网页源文件 求助:绘制加速度曲线 在研究FTP客户端代码,有些不理解 跪求C++中std::system()函数命令资料全集 VC中自动登录问题 自定义的ActiveX为什么不能在ASP中使用??? 谁知道怎样显示一张GIF图啊,用什么类呢?在线等 ̄ ̄ ̄ 谢 后缀为vsd的文件用什么软件能编辑或者打开? VC++如何实现复杂图像的切割问题 问个弱智问题 如何把24位图像转化为8位?谢谢各位大哥
COleDateTime dt;
if ( dt.ParseDateTime(date) )
{
cout << (LPCSTR)dt.Format() << endl;
CTime t ( dt.GetYear(), dt.GetMonth(), dt.GetDay(), dt.GetHour(), dt.GetMinute(), dt.GetSecond() ); cout << t.GetYear() << endl;
}
//返回time_t
int diffTime (char para[], int n)
{
char s_time[128], s_sec[3], s_min[3], s_hour[3],
s_day[3], s_mon[3], s_year[5];
struct tm ptr;
time_t lt;
strncpy (s_year, para, 4);
strncpy (s_mon, ¶[4], 2);
strncpy (s_day, ¶[6], 2);
strncpy (s_hour, ¶[8], 2);
strncpy (s_min, ¶[10], 2);
strncpy (s_sec, ¶[12], 2);
ptr.tm_sec = atoi (s_sec);
ptr.tm_min = atoi (s_min);
ptr.tm_hour = atoi (s_hour);
ptr.tm_mday = atoi (s_day);
ptr.tm_mon = atoi (s_mon) -1;
ptr.tm_year = atoi (s_year) - 1900;
lt = mktime (&ptr) + n;
ptr = *localtime (<);
sprintf (s_time, "%2d%02d%02d%02d%02d%02d", ptr.tm_year + 1900, ptr.tm_mon + 1,
ptr.tm_mday, ptr.tm_hour, ptr.tm_min, ptr.tm_sec);
strcpy (para, s_time);
return lt;
}
函数说明:转化字符串到时间
============================================================================*/
time_t GetTimeFromChar( CString szDay, CString szTime )
{
CString strDay = szDay;
CString strTime = szTime;
tm stTime;
///////////////日期///////////////////////
stTime.tm_year = (atoi)(strDay.Left( strDay.Find( '-' )) ) - 1900;
strDay.Delete( 0, strDay.Find( '-' )+1 );
stTime.tm_mon = (atoi)(strDay.Left( strDay.Find( '-' )) ) - 1;
strDay.Delete( 0, strDay.Find( '-' ) + 1 );
stTime.tm_mday = atoi( strDay );
////////////////时间////////////////////////
stTime.tm_hour = (atoi)(strTime.Left( strTime.Find( ':' )) );
strTime.Delete( 0, strTime.Find( ':' )+1 );
stTime.tm_min = (atoi)(strTime.Left( strTime.Find( ':' )) );
strTime.Delete( 0, strTime.Find( ':' ) + 1 );
stTime.tm_sec = atoi( strTime );
return mktime( &stTime );
}