variantTimeToSystemTime 函数 (oleauto.h)

将时间的变体表示形式转换为系统时间值。

语法

INT VariantTimeToSystemTime(
  [in]  DOUBLE       vtime,
  [out] LPSYSTEMTIME lpSystemTime
);

参数

[in] vtime

要转换的变体时间。

[out] lpSystemTime

接收系统时间。

返回值

函数在成功时返回 TRUE,否则返回 FALSE。

注解

变体时间存储为 8 字节实际值 ( 倍) ,表示介于 100 年 1 月 1 日和 9999 年 12 月 31 日的日期(含 1099 年 1 月 1 日)。 值 2.0 表示 1900 年 1 月 1 日;3.0 表示 1900 年 1 月 2 日等。 向值添加 1 会将日期递增一天。 值的分数部分表示一天中的时间。 因此,2.5 表示 1900 年 1 月 1 日中午:3.25 表示 1900 年 1 月 2 日凌晨 6:00,依依此。 负数表示 1899 年 12 月 30 日之前的日期。

使用 SYSTEMTIME 结构很有用,因为:

  • 它跨越所有时间/日期周期。 MS-DOS 日期/时间限制为仅表示 1/1/1980 到 2107/12/31 之间的日期。
  • 无需执行任何位解码,即可轻松访问日期/时间元素。
  • 国家语言支持数据和时间格式设置函数 GetDateFormatGetTimeFormat 采用 SYSTEMTIME 值作为输入。
  • 它是 Windows NT 和 Windows 95 支持的默认 Win32 时间和日期数据格式。
VariantTimeToSystemTime 函数将接受无效日期,并在解析为 VARIANT 时间时尝试修复这些日期。 例如,2001 年 2 月 29 日等无效日期将解析为 2001 年 3 月 1 日。 只有天数是固定的,因此无效的月份值会导致返回错误。 天数检查为介于 1 到 31 之间。 负天数和大于 31 的天数会导致错误。 小于 31 但大于该月最大日期的一天,该日期将提升为下个月的适当日期。 等于零的一天解析为上个月的最后一天。 例如,无效日期(如 2/0/2001)将解析为 2001 年 1 月 31 日。

要求

要求
目标平台 Windows
标头 oleauto.h
Library OleAut32.lib
DLL OleAut32.dll