【发布时间】:2013-05-20 15:48:06
【问题描述】:
网上有很多代码让我相信下面的代码会给我当前时间。然而,事实并非如此。我得到了我认为是 UNIX 纪元的时间; 1970 年 1 月 1 日 00:00;00。
现在真的很烦人,为什么我的计算机系统时钟控制不了当前时间?我正在为 C 中的嵌入式系统执行此操作。IDE 是 mplab。
#include <stdio.h>
#include <time.h>
int main () {
time_t time_raw_format;
struct tm * ptr_time;
time ( &time_raw_format );
ptr_time = localtime ( &time_raw_format );
printf ("Current local time and date: %s", asctime(ptr_time));
return 0;
}
【问题讨论】:
-
你得到了什么,你期待什么?你的代码对我来说很好。
-
您可能想检查
time返回的内容,以确保它成功。当然还要检查你的时钟。 -
我预计当前时间; 2013 年 5 月 20 日 16:51。正如我所说,1970 年 1 月 1 日 00:00。
-
status-no-repro 在这里工作。检查 Joachim Pileborg 说要检查的内容。
-
time()的返回值呢,而不仅仅是输出参数中传回的值。它是否等于(time_t)-1?如果是这样,你需要检查errno。