如何将32位time_t值转换为64位time_t

时间:2012-06-27 09:23:36

标签: c type-conversion time-t

我正在开发嵌入式系统。我们的平台是32位,所以time_t大小是32位。 现在我想将一个结构作为char数组发送到Windows 7计算机。 My结构的一个字段是time_t。 我不能改变结构。

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

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

请参阅:time, _time32, _time64 documentation

两者都是从1970年1月1日开始的。当你把它作为字符发送时,你只需要担心字节序。

答案 1 :(得分:0)

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

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