为什么我的打印当前日期时间(C语言)给出不同的答案

时间:2010-04-20 12:27:54

标签: c datetime printf

我想获得当前日期(日,星期一和年)。我发现C中有一些函数可以像ctime(获取时间字符串),localtime和gmtime那样执行。我尝试使用以下代码,但输出不同。我得到了这个输出:

日期和时间是2010年4月20日星期二(这是正确的)

年份是:110

这一年是:110。

有人知道为什么吗?

int main(int argc, char** argv)
{   
   time_t now;
   if((now = time(NULL)) == (time_t)-1)
   {
      puts("Failure in getting time");
   }
   else {
      printf("The date and time is: %s\n", ctime(&now));
      printf("The year is: %ld\n", localtime(&now)->tm_year);
      printf("The year is: %ld\n", gmtime(&now)->tm_year);
   }
   getchar();
}

1 个答案:

答案 0 :(得分:7)

查看ctiime的手册页 - 年份字段是从1900年开始的年份。

http://linux.die.net/man/3/ctime

tm_year
The number of years since 1900.