【发布时间】:2016-09-05 17:58:59
【问题描述】:
我正在使用小型 pcb 微型计算机进行一个小型项目。我写了一些代码来获取日期和时间并打印它,但它打印了错误的日期。开始打印的日期:
2066 年 1 月 1 日 00:00:00
我正在使用的代码段如下,去掉了不相关的位。解决此问题的任何帮助都会有所帮助
#include<ctime>
static char* DateTime()
{
time_t now = time(0);
char* dateTime = ctime(&now);
return dateTime;
};
我已经阅读了一些其他类似的问题,但我无法成功地得出解决方案,我觉得我使用微型计算机这一事实可能在我的问题中发挥了作用。我用的板子是STM32 Nucleo。
【问题讨论】:
-
C.C11标准草案n1570中必要的header是
<time.h>:7.27.2.4时间函数1 #includetime_t time(time_t *timer); 3 [...] 如果日历时间不可用,则返回值 (time_t)(-1)。 [...] -
#include行在 C 中无效。您使用 C++,更改文本和标记。它们是不同的语言。 C 也不支持方法。请参阅How to Ask,甚至不清楚您的实际问题是什么。但是,在 MCU 上通常只存在一个独立的环境,因此标准库的全部或部分可能不可用。 -
我的错,我知道我的意思是小错误,纠正它以正确指向正确的语言。
-
在日期格式方面也与 做同样的事情。 2066 年 1 月 -
你的函数仍然不是一个方法。在 C++ 中,区分变得更加相关,因为两者都是可能的。我的其余评论仍然有效。您确定该函数存在并产生任何有效结果吗?你检查了空指针吗?您的问题不完整。