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

C++ <ctime> printing wrong date

本文关键字:错误 日期 打印 ctime lt C++ gt      更新时间:2023-10-16

我正在使用一台小型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。

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

计算机使用NTP协议自动更新时间,这对于没有某种操作系统的微控制器(例如Raspberry)来说是不正确的。

在像时钟这样的项目中,通常使用一个外部时钟IC来保存日期和时间,并使用一个小电池来实现全天候供电而不会丢失日期。

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