0

我正在研究嵌入式系统。我们的平台是 32 位的,所以time_t大小是 32 位的。

现在我想将结构作为char数组发送到 Windows 7 计算机。我的结构的字段之一是time_t. 我不能改变结构。

所以我必须使用 32 位变量将时间值发送到 Windows 机器,当 char 数组到达时,我必须将 32 位 unsigned int 值转换为 64 位time_t

我想我不能直接将 32 位整数转换为 64 位time_t,因为 32 位time_t从 1970 年开始,而 64 位从 1600 年开始。

那么有什么方法可以转换吗?

4

2 回答 2

2

请参阅:时间、_time32、_time64 文档

两者都从 1970 年 1 月 1 日开始。在将其作为字符发送时,您只需要担心字节顺序。

于 2012-06-27T09:38:58.863 回答
0

精度(即单位)是否相同(秒)?如果是这样,那么您应该能够通过减去差异并截断为 32 位来转换较大的数字。

计算所需的秒数可能有点棘手......我尝试了Wolfram Alpha,但我不知道如何获得比“1.168 * 10 10秒”更精确的答案。

于 2012-06-27T09:27:49.863 回答