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 参数的指定值不在参数说明中指定的有效时间范围内,则此函数将失败。

注解

此函数没有关联的导入库。 必须使用 LoadLibraryGetProcAddress 函数动态链接到 Ntdll.dll。

没有单个等效的公共函数。 若要使用公共函数执行此任务,请使用以下步骤:

  1. 调用 SystemTimeToFileTime 将系统时间复制到 FILETIME 结构。 调用 GetSystemTime 以获取要传递到 SystemTimeToFileTime 的当前系统时间
  2. FILETIME 结构的内容复制到 ULARGE_INTEGER 结构。
  3. 使用 1970 年 1 月 1 日第一秒的日期和时间初始化 SYSTEMTIME 结构。
  4. 调用 SystemTimeToFileTime,将步骤 3 中初始化的 SYSTEMTIME 结构传递给调用。
  5. 将步骤 4 中 SystemTimeToFileTime 返回的 FILETIME 结构的内容复制到第二个ULARGE_INTEGER。 复制的值应小于或等于步骤 2 中复制的值。
  6. 将 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

另请参阅

FILETIME

SYSTEMTIME

SystemTimeToFileTime

时间函数

ULARGE_INTEGER