C++ C/C++;时间.h,打印错误的时间,比较时间

C++ C/C++;时间.h,打印错误的时间,比较时间,c++,c,time,compare,C++,C,Time,Compare,好的,我正在试验时间。h,我试图做的是创建本地时间,并将其与设置的时间(triggerTime)进行比较。听起来很简单,但不是真的,我确定我没有正确地初始化我的时间触发时间,因为当我调用printf(“在音调中,时间将是:%s”,ctime(&trigTime));它返回1969年12月31日,而不是我设定的日期。问题是什么?更进一步,我如何使用triggerTime初始化struct*tm,然后将其与localTimeInfo进行比较 #include <stdio.h> #inc

好的,我正在试验时间。h,我试图做的是创建本地时间,并将其与设置的时间(triggerTime)进行比较。听起来很简单,但不是真的,我确定我没有正确地初始化我的时间触发时间,因为当我调用printf(“在音调中,时间将是:%s”,ctime(&trigTime));它返回1969年12月31日,而不是我设定的日期。问题是什么?更进一步,我如何使用triggerTime初始化struct*tm,然后将其与localTimeInfo进行比较

#include <stdio.h>
#include <time.h>

int main() 
{//start main

/****************CURRENT TIME**************************************************/
struct tm *localTimeInfo;//structure to be used to format Local Time
time_t localTime;//create a local time
time(&localTime);//Get the value of local time
localTimeInfo = localtime(&localTime);//store the value of localTime to localTimeInfo

printf("At the Tone, the time will be: %s", asctime(localTimeInfo));
/*****************END CURRENT TIME*********************************************/


/*****************TRIGGER TIME*************************************************/
char *triggerTime = "23 2:30:00 2015";

struct tm *triggerTimeInfo;
time_t trigTime = *triggerTime;

printf("At the Tone, the time will be: %s", ctime(&trigTime));



/*********************END TRIGGER TIME*****************************************/


 return 0;

 }//end main
#包括
#包括
int main()
{//启动主
/****************当前时间**************************************************/
struct tm*localTimeInfo;//用于格式化本地时间的结构
time\u t localTime;//创建本地时间
time(&localTime);//获取本地时间的值
localTimeInfo=localtime(&localtime);//将localtime的值存储到localTimeInfo
printf(“在音调中,时间将是:%s”,asctime(localTimeInfo));
/*****************结束当前时间*********************************************/
/*****************触发时间*************************************************/
char*triggerTime=“23 2:30:00 2015”;
struct tm*triggerTimeInfo;
time\u t trigTime=*triggerTime;
printf(“在音调中,时间将为:%s”,ctime(&trigTime));
/*********************结束触发时间*****************************************/
返回0;
}//端干管

*triggerTime
'2'
——字符串的第一个字符。这确实是一个非常小的值,因此,毫不奇怪您会得到一个非常接近时间纪元的日期。C不是真正的类型安全的,所以它不会捕获这样的bug。请参阅samgak的评论,了解如何正确操作。

有关如何将字符串转换为时间的示例,请参阅此问题的答案: