64,654
社区成员
发帖
与我相关
我的任务
分享
//========================================
// 功能:将固定格式的时间转化为 time_t 日历时间
// eg. 1970-01-01 00:00:00 = 0
//========================================
time_t GetTime_t(char* Buf)
{
int iYear=0,iMonth=0,iDay=0,
iHour=0,iMinute=0,iSecond=0;
//获得年,月,日
char *pTmp,szBuf[21]="";
_tcscpy(szBuf,Buf);
pTmp=_tcsstr(szBuf,"-");
char szYear[5]="",szMonth[3]="",szDay[3]="";
char* p=szBuf,*p1=szYear;
while (p != pTmp)
{ *p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,"-");
p1=szMonth;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf," ");
p1=szDay;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
//获得时间
char szHour[3]="",szMinute[3]="",szSecond[3]="";
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szHour;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szMinute;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szSecond;p++;
while (p != pTmp && *p != '\0'){
*p1=*p;p++;p1++;
}
iYear=atoi(szYear);iMonth=atoi(szMonth),iDay=atoi(szDay);
iHour=atoi(szHour),iMinute=atoi(szMinute),iSecond=atoi(szSecond);
struct tm t;
time_t t_of_day;
t.tm_year=iYear-1900;
t.tm_mon=iMonth-1;
t.tm_mday=iDay;
t.tm_hour=iHour;
t.tm_min=iMinute;
t.tm_sec=iSecond;
t.tm_isdst=0;
t_of_day=mktime(&t);
// printf(ctime(&t_of_day));
return t_of_day;
}
//========================================
// 功能:将固定格式的时间转化为 time_t 日历时间
// eg. 1970-01-01 00:00:00 = 0
//========================================
time_t GetTime_t(char* Buf)
{
int iYear=0,iMonth=0,iDay=0,
iHour=0,iMinute=0,iSecond=0;
//获得年,月,日
char *pTmp,szBuf[21]="";
_tcscpy(szBuf,Buf);
pTmp=_tcsstr(szBuf,"-");
char szYear[5]="",szMonth[3]="",szDay[3]="";
char* p=szBuf,*p1=szYear;
while (p != pTmp)
{ *p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,"-");
p1=szMonth;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf," ");
p1=szDay;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
//获得时间
char szHour[3]="",szMinute[3]="",szSecond[3]="";
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szHour;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szMinute;p++;
while (p != pTmp){
*p1=*p;p++;p1++;
}
*pTmp=',';
pTmp=_tcsstr(szBuf,":");
p1=szSecond;p++;
while (p != pTmp && *p != '\0'){
*p1=*p;p++;p1++;
}
iYear=atoi(szYear);iMonth=atoi(szMonth),iDay=atoi(szDay);
iHour=atoi(szHour),iMinute=atoi(szMinute),iSecond=atoi(szSecond);
struct tm t;
time_t t_of_day;
t.tm_year=iYear-1900;
t.tm_mon=iMonth;
t.tm_mday=iDay;
t.tm_hour=iHour;
t.tm_min=iMinute;
t.tm_sec=iSecond;
t.tm_isdst=0;
t_of_day=mktime(&t);
// printf(ctime(&t_of_day));
return t_of_day;
}
//调用正确结果应该是126,466,609,1 但是输出的结果不正确为什么 啊
time_t t;
t=GetTime_t("2010-01-28 16:41:31");
cout<<"time: "<<t<<endl;
#include <stdio.h>
#include <time.h>
//1970-01-01 00:00:00 = 0 ,按照你给的日期赋值,然后调用函数就可以了,方法如下,从字符串转化为各个字段的整型,楼主自己实现吧~~
int main(void){
struct tm t;
time_t tValue;
t.tm_sec = 0;
t.tm_min = 0;
t.tm_hour = 0;
t.tm_mday = 1;
t.tm_mon = 1;
t.tm_year = 70;
t.tm_isdst = 0;
tValue = mktime(&t);
printf("%ld\n",tValue);
return 0;
}
定义变量time_t time,然后想把某个日期时间(char szDateTime[] ="1970-01-01 01:01:00")赋给time,eg . 1970-01-01 01:01:00,应该怎样做
?最好可以给出代码 ,谢谢
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};