C ++ <ctime>打印错误的日期

时间:2016-05-10 16:14:10

标签: c++ datetime epoch

我正在使用小型pcb微型计算机进行小型项目。我已经写了一些代码来获取日期和时间并打印出来但它打印错误的日期。打印日期始于:

1月1日00:00:00 2066

我正在使用的代码段在下面,非相关位被剥离。解决此问题的任何帮助都会有所帮助

 #include<ctime>



static char* DateTime()
{
   time_t now = time(0);  
   char* dateTime = ctime(&now);
    return dateTime;
};

我已经阅读了一些其他类似的问题,但我无法成功推导出一个解决方案,我觉得我使用微型计算机可能会在我的问题中发挥作用。我使用的主板是STM32 Nucleo。

1 个答案:

答案 0 :(得分:1)

通常,嵌入式主板有一个时钟,每次重置cpu时都会重置。除非您明确设置了日期,否则董事会无法了解实际时间。

计算机使用NTP协议自动更新时间,对于没有某种操作系统的微控制器来说情况并非如此(例如Raspberry)。

在像时钟这样的项目中,通常使用保持日期和时间的外部时钟IC,并使用小型电池以24/7全天候供电并且不会丢失日期。

这是一个页面,提供有关该主题的更多信息以及如何处理微控制器上的时间https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit