时间转换器 - 时间(NULL)到WINDOWS时间

时间:2010-12-09 20:50:47

标签: c++ datetime

是否有工具将时间(NULL)值转换为WINDOWS时间。

时间(NULL)将给出自1970年1月1日以来的秒数。现在,如果我输入该工具的值,它必须给我时间,小时,分钟和秒。

在C ++中,我们使用time(NULL)对象来发送时间。

3 个答案:

答案 0 :(得分:2)

请参阅Microsoft的this KB,并与this function链接。

答案 1 :(得分:0)

如果通过 Windows时间表示NTFS中使用的64位时间,则可以使用转换:

int64 wintime = 100000000uL * time(NULL) + 0x19db1ded53e8000uLL

其中
int64是编译器用于64位整数的类型。

NT时间基于1601-01-01 00:00:00 utc的原点,每秒计数1000万单位 - 计时精度为100 ns。它假定了一个简单的闰年序列,并忽略了1752年左右的日历复杂性。

因此,通过将Unix时间乘以一千万,并添加116444736000000000(十进制)或0x19DB1DED53E8000(这是1970-01-01和1601-01-01之间的差异),可以轻松地从一个转换为另一个。

答案 2 :(得分:0)

10000000uL *时间(NULL)+ 0x19db1ded53e8000uLL