SystemTimeToDateTime - C++ Builder

C++ Builder 參考手冊 ? System::Sysutils ? SystemTimeToDateTime


操作系統(tǒng) API 的日期時間轉(zhuǎn)為日期時間類型的數(shù)值

頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
函數(shù)原型:

System::TDateTime __fastcall SystemTimeToDateTime(const _SYSTEMTIME &SystemTime);

參數(shù):

  • SystemTime:Windows API 的日期時間類型

返回值:

  • 日期時間類型數(shù)值,如果 SystemTime 的日期無效,轉(zhuǎn)換失敗,拋出 EConvertError 異常;
  • SystemTimeToDateTime 和 TrySystemTimeToDateTime 的區(qū)別:
    ? SystemTimeToDateTime 轉(zhuǎn)換失敗拋出異常;
    ? TrySystemTimeToDateTime 轉(zhuǎn)換結果通過函數(shù)的參數(shù)返回,轉(zhuǎn)換成功函數(shù)返回 true,轉(zhuǎn)換失敗函數(shù)返回 false;
  • 使用 System::Dateutils::TTimeZone::Local->ToLocalTime() 和 System::Dateutils::TTimeZone::Local->ToUniversalTime() 在 UTC 時間和本地時間之間互相轉(zhuǎn)換,如果有需要。

例子:把 API 函數(shù) GetSystemTime 獲取到的系統(tǒng)時間轉(zhuǎn)為本地時間。

#include <System.DateUtils.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    SYSTEMTIME SysTime;
    GetSystemTime(&SysTime);
    TDateTime dt = SystemTimeToDateTime(SysTime);
    Memo1->Lines->Add(L"UTC 時間:" + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz", dt));
    dt = Dateutils::TTimeZone::Local->ToLocalTime(dt);
    Memo1->Lines->Add(L"本地時間:" + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz", dt));
}

運行結果:由于 GetSystemTime 獲取的時間是 UTC 時間,所以用 TTimeZone::Local->ToLocalTime() 轉(zhuǎn)為本地時間 (在中國,本地時間為 UTC 時間 + 8 小時 (北京時間為 +8 時區(qū)時間))。

運行結果

相關:


C++ Builder 參考手冊 ? System::Sysutils ? SystemTimeToDateTime

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容