首页 > 解决方案 > 时间戳 UINT32_t 溢出问题

问题描述

我有一个应用程序,其中嵌入式设备每天根据服务器请求设置一个内部时间戳。为简单起见,服务器返回 Unix Epoch 中的时间,例如:

1602529759 = 10/12/2020 3:08:XX EST PM

这些设备会报告原始时间戳,通常它是正确的。然而,每隔一段时间,我们就会得到一个发生在未来 17 年零几天的时间戳。日期戳似乎总是与正确的值相关,但在 2037 年。例如,如果今天的日期是 2020 年 10 月 12 日,则设备报告的日期将是 2037 年 10 月 17 日(大约)。我怀疑这个问题与二进制数学问题和整数溢出(UINT32_t)有关。我想确定问题的原因购买我的首要任务是了解问题,以便我可以更正我们数据库中错误报告的值。

有什么想法可能会在这里发生吗?

标签: arduinobinarytimestampunix-timestampuint32

解决方案


推荐阅读