C++ Builder 参考手册 ➙ System::Sysutils ➙ EncodeTime
由时、分、秒、毫秒生成日期时间型数值
头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:
System::TDateTime __fastcall EncodeTime(System::Word Hour, System::Word Min, System::Word Sec, System::Word MSec);
参数:
- Hour:时,0~23
- Min:分,0~59
- Sec:秒,0~59
- MSec:毫秒,0~999
返回值:
- 日期时间类型数值,日期部分为 0,时间为参数指定的时、分、秒、毫秒;
- 如果参数指定的时、分、秒、毫秒无效,抛出 EConvertError 异常;
- 转换结果在数值上,为一个双精度浮点数值,等于 1 为一天 (24 小时整),0.5 为 12 小时,所以转换结果大于等于0,并且小于1;
- 如果日期时间类型变量不包含日期,即日期为 0,如果输出日期,认为是 1899年12月30日,因为日期时间类型变量数值是从 1899/12/30 00:00:00.000 开始到这个时刻的天数,如果看到 C++ Builder 程序输出了这个日期,说明是输出了等于 0 的日期引起的。
例:23时 59分 59秒 999毫秒:转换为日期时间成功,1时 0分 60秒 0毫秒:转换为日期时间失败:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
TDateTime dt = Sysutils::EncodeTime(23, 59, 59, 999);
Memo1->Lines->Add(FormatDateTime(L"hh:nn:ss.zzz", dt));
}
catch(Exception &e)
{
ShowMessage(L"转换出错:" + e.Message);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
try
{
TDateTime dt = Sysutils::EncodeTime(1, 0, 60, 0);
Memo1->Lines->Add(FormatDateTime(L"yyyy/mm/dd", dt));
}
catch(Exception &e)
{
ShowMessage(L"转换出错:" + e.Message);
}
}
运行结果:
相关:
- System::Dateutils::DecodeDateTime
- System::Dateutils::EncodeDateTime
- System::Dateutils::TryEncodeDateTime
- System::Dateutils::DateTimeToUnix
- System::Dateutils::UnixToDateTime
- System::Dateutils::YearOf
- System::Dateutils::MonthOf
- System::Dateutils::DayOf
- System::Dateutils::DayOfTheWeek
- System::Dateutils::DayOfTheMonth
- System::Dateutils::DayOfTheYear
- System::Dateutils::HourOf
- System::Dateutils::MinuteOf
- System::Dateutils::SecondOf
- System::Dateutils::MilliSecondOf
- System::Dateutils
- System::Sysutils::DecodeDate
- System::Sysutils::DecodeDateFully
- System::Sysutils::DecodeTime
- System::Sysutils::EncodeDate
- System::Sysutils::EncodeTime
- System::Sysutils::TryEncodeDate
- System::Sysutils::TryEncodeTime
- System::Sysutils::TryStrToDate
- System::Sysutils::TryStrToDateTime
- System::Sysutils::TryStrToTime
- System::Sysutils::FormatDateTime
- System::Sysutils::CurrentYear
- System::Sysutils::Now
- System::Sysutils::Date
- System::Sysutils::Time
- System::Sysutils
C++ Builder 参考手册 ➙ System::Sysutils ➙ EncodeTime