Share via


SystemTimeToVariantTime 函式 (oleauto.h)

將系統時間轉換為 Variant 表示法。

語法

INT SystemTimeToVariantTime(
  [in]  LPSYSTEMTIME lpSystemTime,
  [out] DOUBLE       *pvtime
);

參數

[in] lpSystemTime

系統時間。

[out] pvtime

變化時間。

傳回值

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

備註

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

變化時間會解析為一秒。 系統會忽略輸入日期中的任何毫秒。

注意

使用變化時間時,請留意閏年新增的額外一天,這可能會在未處理時產生非預期的結果。 如需詳細資訊,請參閱 閏年整備

SYSTEMTIME 結構適用於下列原因:

  • 它會跨越所有時間/日期週期。 MS-DOS 日期/時間僅限於 1/1/1980 與 2107/12/31 之間的日期。
  • 日期/時間元素很容易存取,而不需要執行任何位譯碼。
  • 國家數據支持數據和時間格式設定函式 GetDateFormatGetTimeFormat 會接受 LPSYSTEMTIME 值做為輸入。
  • 它是 Windows 支援的預設時間/日期數據格式。
SystemTimeToVariantTime 函式會接受無效的日期,並在解析為 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