所有函數定義在 DateUtils 單元,參數均為 TDateTime:
| 函數 | 返回類型 | 說明 |
|---|---|---|
| DateOf | TDateTime | 日期部分(時間歸零) |
| TimeOf | TDateTime | 時間部分(日期歸零) |
| YearOf | Word | 年份 |
| MonthOf | Word | 月份 (1-12) |
| WeekOf | Word | 年間第幾周 (ISO 8601) |
| DayOf | Word | 月內第幾天 (1-31) |
| HourOf | Word | 小時 (0-23) |
| MinuteOf | Word | 分鐘 (0-59) |
| SecondOf | Word | 秒 (0-59) |
| MilliSecondOf | Word | 毫秒 (0-999) |
uses DateUtils;
procedure TForm1.FormCreate(Sender: TObject);
var
dt: TDateTime;
Year, Month, Week, Day, Hour, Minute, Second, MilliSecond: Word;
d, t: TDateTime;
begin
dt := StrToDateTime('2009-5-20 11:22:33');
d := DateOf(dt); // 2009-5-20 00:00:00
t := TimeOf(dt); // 1899-12-30 11:22:33
Year := YearOf(dt); // 2009
Month := MonthOf(dt); // 5
Week := WeekOf(dt); // 20
Day := DayOf(dt); // 20
Hour := HourOf(dt); // 11
Minute := MinuteOf(dt); // 22
Second := SecondOf(dt); // 33
MilliSecond := MilliSecondOf(dt); // 0
ShowMessageFmt('%d-%d-%d 第%d周 %d:%d:%d.%d',
[Year, Month, Day, Week, Hour, Minute, Second, MilliSecond]);
end;
DecodeDate/Time 需傳多個 var 參數,適合一次性分解多個成分。YearOf 等單值函數語法更簡潔,適合只需某個成分時。