localtime返回null

时间:2011-03-28 12:50:57

标签: c

localtime返回null。为什么? (我正在使用Visual C ++ 2008)

struct tm    *tb;   
time_t       lDate;      

time(&lDate);

tb = localtime(&lDate); // tb is null everytime I try this!      

4 个答案:

答案 0 :(得分:1)

这是您的确切代码吗?我刚刚编译了这个程序,它工作正常:

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

int main(int argc, char **argv)
{
    struct tm *tb;
    time_t lDate;

    time(&lDate);
    if (lDate == -1) {
        perror("time");
        return 1;
    }

    tb = localtime(&lDate);
    if (tb == NULL) {
        fprintf(stderr, "localtime failed\n");
        return 1;
    }

    printf("Good\n");
    return 0;
}

答案 1 :(得分:1)

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

 int main(void)
  {
     // get the current time
     time_t now = time(0);
     struct tm* theTime = localtime(&now);
     int t=(int)theTime;
     printf("%d",t);
     getch();
     return 0;
  }

它有效

答案 2 :(得分:1)

在项目中定义预处理器 _USE_32BIT_TIME_T ,然后重试。祝你好运:)

答案 3 :(得分:0)

您在评论中发布的代码可以正常工作,直到您转到if语句。我不确定你在这里尝试做什么,但你; if (pArea);几乎肯定不应该在那里(很难说,因为它的格式非常糟糕,因为你把它放在评论中)。你也一直都是0,那是你打算做的吗?