只求人生若初 2015-09-21 03:27 采纳率: 0%
浏览 3160

C语言,time.h中得mktime函数测试出一些问题,当tm_hour = 0时,转化成前一天了

mktime函数,当tm结构体,当tm_hour为零的时候,会将时间转化到前一天,
tm_hour 不为零的时候,就没有问题。小菜一枚,help~没有币~~抱歉~

#include
#include
void printTime(struct tm * time){
printf("%d-%d-%d %d:%d:%d\n",time->tm_year+1900,time->tm_mon+1,time->tm_mday,time->tm_hour,time->tm_min,time->tm_sec);
}
struct tm str2time(char * str){
struct tm tmp_time = (struct tm *)malloc(sizeof(struct tm));
strptime(str,"%Y%m%d",tmp_time);
return *tmp_time;
}
int main(int argc, const char * argv[]) {
struct tm tmp_time =str2time("201509021");//将字符串转成时间
printTime(&tmp_time);
time_t t = mktime(&tmp_time);//该函数有问题。。。。。
tmp_time = *localtime(&t);//本地时间
printf("%s:\n","本地时间");
printTime(&tmp_time);
}
结果如下:
2015-9-21 0:0:0
本地时间:
2015-9-20 23:0:0

  • 写回答

1条回答 默认 最新

  • 只求人生若初 2015-09-21 05:17
    关注

    自己对tm结构理解有问题,tm_hour =0 ,表示的本来就应该是前一天24点,其他的1~23分别表示的是1时到23时。

    评论

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退