RtlTimeToSecondsSince1970 函数 (winternl.h)
[RtlTimeToSecondsSince1970 可用于 Windows 2000 和 Windows XP。 在后续版本中,它可能不可用或修改。]
将指定的 64 位系统时间转换为自 1970 年 1 月 1 日开始以来的秒数。
语法
BOOLEAN RtlTimeToSecondsSince1970(
[in] PLARGE_INTEGER Time,
[out] PULONG ElapsedSeconds
);
参数
[in] Time
指向指定系统时间 的LARGE_INTEGER 结构的指针。 此值的有效年份为 1970 到 2105(含 1970 到 2105)。
[out] ElapsedSeconds
指向接收秒数的变量的指针。
返回值
如果该函数成功,则返回 TRUE。 如果失败,则返回 FALSE。 通常,如果 Time 参数的指定值不在参数说明中指定的有效时间范围内,则此函数将失败。
注解
此函数没有关联的导入库。 必须使用 LoadLibrary 和 GetProcAddress 函数动态链接到 Ntdll.dll。
没有单个等效的公共函数。 若要使用公共函数执行此任务,请使用以下步骤:
- 调用 SystemTimeToFileTime 将系统时间复制到 FILETIME 结构。 调用 GetSystemTime 以获取要传递到 SystemTimeToFileTime 的当前系统时间。
- 将 FILETIME 结构的内容复制到 ULARGE_INTEGER 结构。
- 使用 1970 年 1 月 1 日第一秒的日期和时间初始化 SYSTEMTIME 结构。
- 调用 SystemTimeToFileTime,将步骤 3 中初始化的 SYSTEMTIME 结构传递给调用。
- 将步骤 4 中 SystemTimeToFileTime 返回的 FILETIME 结构的内容复制到第二个ULARGE_INTEGER。 复制的值应小于或等于步骤 2 中复制的值。
- 将 197) 0 年 1 月 1 日 (步骤 5 中初始化的 ULARGE_INTEGER 结构中的 64 位值从步骤 2 中初始化的 ULARGE_INTEGER 结构的 64 位值相减 (当前系统时间) 。 自 1970 年 1 月 1 日以来,此值以 100 纳秒的间隔生成。 若要将此值转换为秒,请除以 10,000,000。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | winternl.h |
Library | ntdll.lib |
DLL | ntdll.dll |