C++ Builder 参考手册 ➙ System::Sysutils ➙ TrySystemTimeToDateTime
操作系统 API 的日期时间转为日期时间类型的数值
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
bool __fastcall TrySystemTimeToDateTime(const _SYSTEMTIME &SystemTime, System::TDateTime &DateTime);
参数:
- SystemTime:Windows API 的日期时间类型;
- DateTime:返回日期时间类型数值转换结果;
返回值:
- true:通过参数 DateTime 返回日期时间类型数值;
- false:SystemTime 的日期无效,转换失败;
-
SystemTimeToDateTime 和 TrySystemTimeToDateTime 的区别:
• SystemTimeToDateTime 转换失败抛出 EConvertError 异常;
• TrySystemTimeToDateTime 转换结果通过函数的参数返回,函数返回是否转换成功; - 使用 System::Dateutils::TTimeZone::Local->ToLocalTime() 和 System::Dateutils::TTimeZone::Local->ToUniversalTime() 在 UTC 时间和本地时间之间互相转换,如果有需要。
例子:把 API 函数 GetSystemTime 获取的系统时间转为本地时间 (北京时间)。
由于这个 API 函数获取到的是 UTC 时间,需要用 TTimeZone::Local->ToLocalTime 转为本地时间 (北京时间)。
#include <System.DateUtils.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SYSTEMTIME SysTime;
GetSystemTime(&SysTime);
TDateTime dt;
if(TrySystemTimeToDateTime(SysTime,dt))
{
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));
}
else
{
Memo1->Lines->Add(L"转换失败!");
}
}
运行结果:
运行结果
相关:
- System::Sysutils::DateTimeToSystemTime
- System::Sysutils::SystemTimeToDateTime
- System::Sysutils::TrySystemTimeToDateTime
- System::Sysutils::DateTimeToFileDate
- System::Sysutils::FileDateToDateTime
- System::Sysutils::FileAge
- System::Sysutils::FileGetDate
- System::Sysutils::FileSetDate
- System::Sysutils::DateToStr
- System::Sysutils::TimeToStr
- System::Sysutils::DateTimeToStr
- System::Sysutils::DateTimeToString
- System::Sysutils::FormatDateTime
- System::Sysutils::StrToDate
- System::Sysutils::StrToDateDef
- System::Sysutils::StrToTime
- System::Sysutils::StrToTimeDef
- System::Sysutils::StrToDateTime
- System::Sysutils::StrToDateTimeDef
- System::Sysutils::FloatToDateTime
- System::Sysutils::FormatSettings
- System::Sysutils::TFormatSettings
- System::Sysutils
- System::Dateutils::TTimeZone::ToUniversalTime
- System::Dateutils::TTimeZone::ToLocalTime
- System::Dateutils::TTimeZone
- System::Dateutils
- System::TDateTime
- System
C++ Builder 参考手册 ➙ System::Sysutils ➙ TrySystemTimeToDateTime