共用方式為


VariantTimeToSystemTime 函式 (oleauto.h)

將時間的變異表示轉換為系統時間值。

語法

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

參數

[in] vtime

要轉換的變異時間。

[out] lpSystemTime

接收系統時間。

傳回值

函式會在成功時傳回 TRUE,否則傳回 FALSE。

備註

變異時間會儲存為8位元組的實值, (double) ,代表9999年1月1日到9999年12月31日之間的日期。 值 2.0 代表 1900 年 1 月 1 日;3.0 代表 1900 年 1 月 2 日等等。 將1新增至值會將日期遞增一天。 值的分數部分代表一天的時間。 因此,2.5 代表 1900 年 1 月 1 日下午;3.25 代表上午 6:00,於 1900 年 1 月 2 日等。 負數代表 1899 年 12 月 30 日之前的日期。

使用 SYSTEMTIME 結構很有用,因為:

  • 它會跨越所有時間/日期週期。 MS-DOS 日期/時間僅限於代表介於 1/1/1980 和 2107/12/31 之間的日期。
  • 日期/時間元素都很容易存取,而不需要進行任何位譯碼。
  • 國家語言支持數據和時間格式設定函式 GetDateFormatGetTimeFormat 會採用 SYSTEMTIME 值作為輸入。
  • 這是 Windows NT 和 Windows 95 支援的預設 Win32 時間和日期數據格式。
VariantTimeToSystemTime 函式會接受無效的日期,並嘗試在解析為 VARIANT 時間時加以修正。 例如,2001/29/29 之類的無效日期會解析為 2001/3/1。 只有固定天數,因此無效的月份值會導致傳回錯誤。 系統會檢查天數介於 1 到 31 之間。 負天數和天數大於 31 會導致錯誤。 一天小於 31,但大於該月份中的最大日期,日期會升階為下個月的適當日期。 等於零的日期會解析為上個月的最後一天。 例如,2001/2/0 之類的無效日期會解析為 2001/1/31。

規格需求

需求
目標平台 Windows
標頭 oleauto.h
程式庫 OleAut32.lib
Dll OleAut32.dll