各種時間型別之間的轉換函數DateTimeToFileDate函數:定義:DateTimeToFileDate(DateTime: TDateTime): Integer; 功能:將一個TDateTime類型的時間轉換為Dos環境中的時間,Dos環境下對時間的存取方法和VCL中的TdateTime類型不一樣,在進行檔案操作時,為了保持時間的一致性,需要使用DateTimeToFileDate函數進行轉化,傳回的Integer的值就是Dos下的用來描述時間的值。 DateTimeToSystemTime 流程:定義:PRocedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);作用:將一個TDateTime類型的時間轉換為Win API函數所使用的TSystemTime類型,在使用WinApi函數操縱時間時使用到。 SystemTimeToDateTime 函數:定義:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime;作用:將一個在WinApi函數中得到的TSysTemTime類型的數轉換為TDateTime類型。 DateTimeToTimeStamp 函數:TimeStampToDateTime 函數:定義:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp; function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;作用:用於在TDataTime類型與TTimeStamp之間進行轉換。 TDataTime 以一個double描繪一個時間,而TTimeStamp則是採用兩個整形數分別描述時間。兩種類型的區別可參考文章開始處的資料類型描述部分。 EncodeDate 函數:定義:function EncodeDate(Year, Month, Day: Word): TDateTime; 功能: 輸入年(year),月(month),日(day)的值,將該日期傳回為TDateTime類型,年的範圍為1-9999,月份的範圍為1-12,日期的範圍視當月的情況而定,如果輸入的值超出範圍,則將產生一個EConvertError錯誤。 DecodeDate 過程:定義:procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);作用:輸入一個TDateTime類型的日期,將其轉為年(Year),月(Month),日(Day)的值。若輸入值為0或小於0,則年月皆為0,EncodeTime 函數:定義:EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;作用:輸入小時(Hour),分(min),秒(Sec),微秒(MSec)的值,傳回一個TDateTime類型的時間,該值為一個介於0至1之間的小數。 Hour的取值範圍為0-23,Min的取值範圍為0-59,Sec的取值範圍為0-59,MSec的取值範圍為0-999,如果輸入值超出範圍,則產生一個EConvertError錯誤。 DecodeTime 流程:定義:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);作用:輸入一個時間,將其轉換為小時(Hour),分(min),秒(Sec),微秒(MSec)的值。 TDateTime類型與字串型轉換函數:DateTimeToStr 函數:DateToStr 函數TimeToStr函數定義:function DateTimeToStr(DateTime: TDateTime): string; function TimeToStr(Time: TDateTime): string;function TimeToStr(Time: TDateTime): string;作用:將一個TDateTime類型的數轉換成字串,DateTimeToStr轉換日期和時間,DateToStr只轉換日期,TimeToStr只轉換時間。轉換後的輸出效果為YYYY-MD H:M:SStrToDateTime函數StrToDate函數StrToTime函數定義:function StrToDateTime(const S: string): TDateTime; 函數 StrToDate(const S: string): TDateTime ): TDateTime;作用:將帶有日期時間格式的字串轉換成TDateTime,其中S必須是有效的字串,如YY-MM-DD HH:MM:SS格式,否則就會觸發EConvertError事件,提示錯誤訊息。 時間部分的字串必須由2~3個的數值字符串構成,並且採用在Windows區域設定中設定的分隔字元進行分隔,其格式要求符合在Windows區域設定中的設定,其中HH,MM (小時,分鐘)必須添加,SS(秒)可選,也可以在後面加入Am和Pm區分上下午,這時候系統將認為採用12小時表示法,否則認為採用24小時表示法。 日期部分的格式要求符合Windows區域設定中的短日期格式,也是由2~3個的數值字串構成,如果在字串中只有2個數,則認為是指定了月份和日期,年份採用當前年份, 如果在區域設定中採用兩位年份的表示方法,則係統將會採用以下方法處理:
| 目前年份 | 起始年份 | 基準值 | 輸入年份03 | 輸入年份50 | 輸入年份68 |
| 1998 | 0 | 1900 | 1903 | 1950 | 1968 |
| 2002 | 0 | 2000 | 2003 | 2050 | 2068 |
| 1998 | 50 | 1948 | 2003 | 1950 | 1968 |
| 2000 | 50 | 1950 | 2003 | 1950 | 1968 |
| 2002 | 50 | 1952 | 2003 | 2050 | 1968 |
| 2020 | 50 | 1970 | 2003 | 2050 | 2068 |
| 2020 | 10 | 2010 | 2103 | 2050 | 2068 |