delphi用於時間操作的函式 2

2021-08-22 17:05:17 字數 3935 閱讀 1409

tdatetime型別與字串型轉換函式:

datetimetostr 函式:

datetostr 函式

timetostr函式

定義:function datetimetostr(datetime: tdatetime): string;

function timetostr(time: tdatetime): string;

function timetostr(time: tdatetime): string;

作用:將乙個tdatetime型別的數轉換成字串,datetimetostr轉換日期和時間,datetostr只轉換日期,timetostr只轉換時間。轉換後的輸出效果為yyyy-m-d h:m:s

strtodatetime函式

strtodate函式

strtotime函式

定義:function strtodatetime(const s: string): tdatetime;

function strtodate(const s: string): tdatetime;

function strtotime(const s: string): 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

首先在區域設定中取得兩位年份的起始年份,如在區域設定中設兩位年份範圍為1932-2023年,則起始年份為32年,如果這個起始年份為0,則認為兩位年份表示的都是本世紀,如果其實年份大於0 ,則採用當前年份減去起始年份的值,這個值稱為基準值,大於等於這個值則認為事本世紀,否則認為是下世紀,下面給出幾個例子說明:

datetimetostring 過程:

formatdatetime 函式:

定義:procedure datetimetostring(var result: string; const format: string; datetime: tdatetime);

function formatdatetime(const format: string; datetime: tdatetime): string;

作用:通過定義format字串中的格式得到要輸出時間字串,例如要輸出「今天是2023年5月5日,星期五」就可以用這兩種方法,這兩個方法的作用相同,只是乙個是通過共享變數取得輸出字串,值在result中,乙個是通過返回值取得輸出字串,datetime引數是希望輸出的日期值,format由格式標誌與附加字串組合而成。附加字串用」」圈起,就像c中的printf函式.如「今天是2023年5月5日,星期五」的format值就是 『」今天是」yyyy」年」mm」月」dd」日,」 dddd』,yyyy,mm,dd,dddd都是格式標識,各種格式標識的解釋如下:

d      :用一位或兩位整數顯示日子(1-31)

dd     :用兩位整數顯示日子,不足兩位的用0補足(01-31)

ddd    :按縮略方式顯示當前的星期號,如果windows是英文版,則顯示為mon-sun,如果是中文版,則顯示同dddd。

dddd   :按完整方式顯示當前的星期號,如windows是英文版,則顯示monday-sumday,如果是中文版,則顯示星期一~星期日

ddddd  :按區域設定中的短日期格式輸出。

dddddd :按區域設定中的長日期格式輸出。

m      :用一位或兩位整數顯示月份(1-12)

mm     :用兩位整數顯示月份,不足兩位的用0補足(01-12)

mmm    :使用縮略方式顯示月份名稱,英文版顯示為jan-dec,中文版同mmmm

mmmm   :使用完整方式顯示月份名稱,英文版顯示為january-december,中文版為一月~十二月

yy     :按兩位整數方式顯示年份(00-99)

yyyy   :按四位整數方式顯示年份(0000-9999)

h      :用一位或兩位整數顯示小時(0-23)       

hh     :用兩位整數顯示小時,不足兩位的用0補足(00-23)

n      :用一位或兩位整數顯示分鐘(0-60)       

nn     :用兩位整數顯示分鐘,不足兩位的用0補足(00-60)

s      :用一位或兩位整數顯示秒數(0-60)

ss     :用兩位整數顯示秒數,不足兩位的用0補足(00-60)

z      :用一位至兩位整數顯示毫秒數(0-999)

zzz    :用三位整數顯示毫秒數,不足三位的用0補足(000-999)

tt     :按照區域設定中的格式顯示日期

am/pm  :用於12小時制的顯示,帶有am的則表示從0點~12點,pm代表從12點~0點。

delphi封裝了區域設定的各種資訊,並以此定義了一系列的變數,下面介紹與時間相關的部分變數:

dateseparator :char

日期分隔符,用於分隔年月日

timeseparator :char

時間分隔符,用於分隔小時,分鐘,秒

shortdateformat:string

區域設定中短日期格式的定義。

longdateformat :string

區域設定中長日期格式的定義。

shorttimeformat:string

區域設定中短時間格式的定義。

longtimeformat :string

區域設定中長時間格式的定義。

timeamstring :string

用來表示上午的字串

timepmstring :string

用來表示下午的字串

shortmonthnames:array[1..12] of string;

用於縮略表示月份名稱的陣列,就是在使用formatdatetime時顯示的mmm標識的字串

longmonthnames:array[1..12] of string;

用於完整表示月份名稱的陣列,就是在使用formatdatetime時顯示的mmmm標識的字串

shortdaynames :array[1..7] of string;

用於縮略表示星期名稱的陣列,就是在使用formatdatetime時顯示的ddd標識的字串

longdaynames :array[1..7] of string;

用於完整表示星期名稱的陣列,就是在使用formatdatetime時顯示的ddd標識的字串

twodigityearcenturywindow:word = 50;

在使用兩位年份時的起始年份。

delphi 日期時間操作

delphi中的時間操作技術 delphi中的用於表示時間的型別 tdatetime型別 delphi中最常用的表示日期時間的資料型別tdatetime型別,tdatetime型別實質上是乙個double型的數,在delphi中是這樣定義tdatetime型別 type tdatetime type...

delphi 時間日期操作

delphi 時間日期操作 用於時間操作的函式 date函式 定義 date tdatetime 作用 返回當前的日期 範例 currentdate date dayofweek函式 定義 function dayofweek date tdatetime integer 作用 得到指定日期的星期值...

Mysql 用於統計的時間函式用法

今天 select from 表名 where to days 時間欄位名 to days now 昨天 select from 表名 where to days now to days 時間欄位名 1近7天 select from 表名 where date sub curdate interva...