是否有工具将时间(NULL)值转换为WINDOWS时间。
时间(NULL)将给出自1970年1月1日以来的秒数。现在,如果我输入该工具的值,它必须给我时间,小时,分钟和秒。
在C ++中,我们使用time(NULL)对象来发送时间。
答案 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