Delphi 日期时间函数详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Day 开头的函数 ● Unit
DateUtils
function DateOf(const AValue: TDateTime): TDateTime;
描述
使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个 只带有日期的 TDateTime 类型变量。 例如: showmessage(DateTimetostr(dateof(now()))); 你得到的是 2003/03/19 而 showmessage(DateTimetostr((now()))); 得到的是 2003/03/19 10:50:49
function TimeToStr(Time: TDateTime): string; function TimeToStr(Time: TDateTime): string; 作用:将一个 TDateTime 类型的数转换成字符串,DateTimeToStr 转换日期和时间, Date
ToStr 只转换日期,TimeToStr 只转换时间。转换后的输出效果为 YYYY-M-D H:M: S StrToDateTime 函数 StrToDate 函数 StrToTime 函数 定义:function StrToDateTime(const S: string): TDateTime;
function FormatDateTime(const Format: string; DateTime:
TDateTime): s
tring;
作用:通过定义 Format 字串中的格式得到要输出时间字符串,例如要输出“今天是
2002
年 5 月 5 日,星期五”就可以用这两种方法,这两个方法的作用相同,只是一个是
,大于等于这个值则认为事本世纪,否则认为是下世纪,下面给出几个例子说明:
DateTimeToString 过程:
FormatDateTime 函数:
定义:procedure DateTimeToString(var Result: string; const Format: string;
D
ateTime: TDateTime);
h
:用一位或两位整数显示小时(0-23)
hh
:用两位整数显示小时,不足两位的用 0 补足(00-23)
n
:用一位或两位整数显示分钟(0-60)
nn
:用两位整数显示分钟,不足两位的用 0 补足(00-60)
s
:用一位或两位整数显示秒数(0-60)
ss
:用两位整数显示秒数,不足两位的用 0 补足(00-60)
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 个数,则认为是指定了月份和日期,年份采用当 前年份 , 如果在区域设置中采用两位年份的表示方法,则系统将会采用以下方法处 理: 首先在区域设置中取得两位年份的起始年份,如在区域设置中设两位年份 范围为 1932-2031 年,则起始年份为 32 年,如果这个起始年份为 0,则认为两位年份表示 的都是 本世纪,如果其实年份大于 0 ,则采用当前年份减去起始年份的值,这个值称为基 准值
-Sun,如果是中文版,则显示同 dddd。
dddd :按完整方式显示当前的星期号,如 Windows 是英文版,则显
示 Monday-
SumDay,如果是中文版,则显示星期一~星期日
ddddd :按区域设置中的短日期格式输出。
dddddd :按区域设置中的长日期格式输出。
m
:用一位或两位整数显示月份(1-12)
通过共
享变量取得输出字符串,值在 Result 中,一个是通过返回值取得输出字符串,
DateT百度文库me
参数是希望输出的日期值,Format 由格式标志与附加字符串组合而成。附加字串
用””
圈起,就像 C 中的 Printf 函数.如“今天是 2002 年 5 月 5 日,星期五”的 Format
值就是 ‘”
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime; 作用:用于在 TDataTime 类型与 TTimeStamp 之间进行互相转换。TDataTime 用一个 doubl e 描绘一个时间,而 TTimeStamp 则是采用两个整形数分别描述时间。两种类型的区 别可参 考文章开始处的数据类型描述部分。 EncodeDate 函数:
今天是”yyyy”年”mm”月”dd”日,” dddd’,yyyy,mm,dd,dddd 都是格式标识,
各
种格式标识的解释如下:
d
:用一位或两位整数显示日子(1-31)
dd
:用两位整数显示日子,不足两位的用 0 补足(01-31)
ddd
:按缩略方式显示当前的星期号,如果 Windows 是英文版,
则显示为 Mon
●function DateTimeToStr(DateTime: TDateTime): string;
z
:用一位至两位整数显示毫秒数(0-999)
zzz
:用三位整数显示毫秒数,不足三位的用 0 补足(000-999)
tt
:按照区域设置中的格式显示日期
am/pm :用于 12 小时制的显示,带有 AM 的则表示从 0 点~12 点,
pm 代表从 12 点~
0 点。
与时间相关的变量:
Delphi 封装了区域设置的各种信息,并以此定义了一系列的变量,下面介绍与时间
作用:输入一个时间,将其转换为小时(Hour),分(min),秒(Sec),微秒(MSec)的值。 TDateTime 类型与字符串型转换函数: DateTimeToStr 函数: DateToStr 函数 TimeToStr 函数 定义:function DateTimeToStr(DateTime: TDateTime): string;
各种时间类型之间的转换函数 DateTimeToFileDate 函数:
定义:DateTimeToFileDate(DateTime: TDateTime): Integer; 作用: 将一个 TDateTime 类型的时间转化为 Dos 环境中的时间,Dos 环境下对时间 的访问 方法和 VCL 中的 TdateTime 类型不一样,在进行文件操作时,为了保持时间的一致 性,需 要使用 DateTimeToFileDate 函数进行转化,返回的 Integer 的值就是 Dos 下的用于 描述时 间的值。 DateTimeToSystemTime 过程: 定义:procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TS ystemTime); 作用:将一个 TDateTime 类型的时间转换为 Win API 函数所使用的 TSystemTime 类 型,在使 用 WinApi 函数操纵时间时用到。 SystemTimeToDateTime 函数: 定义:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTim e; 作用:将一个在 WinApi 函数中得到的 TSysTemTime 类型的数转换为 TDateTime 类型。 DateTimeToTimeStamp 函数: TimeStampToDateTime 函数: 定义:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
相关
的部分变量:
DateSeparator :Char
日期分隔符,用于分隔年月日
TimeSeparator :Char
时间分隔符,用于分隔小时,分钟,秒
ShortDateFormat:String
区域设置中短日期格式的定义。
LongDateFormat :String
区域设置中长日期格式的定义。
ShortTimeFormat:String
ShortDayNames :array[1..7] of String; 用于缩略表示星期名称的数组,就是在使用 FormatDateTime 时显示的 ddd 标识的字 符串 LongDayNames :array[1..7] of String; 用于完整表示星期名称的数组,就是在使用 FormatDateTime 时显示的 ddd 标识的字 符串 TwoDigitYearCenturyWindow:Word = 50; 在使用两位年份时的起始年份。
mm
:用两位整数显示月份,不足两位的用 0 补足(01-12)
mmm
:使用缩略方式显示月份名称,英文版显示为 Jan-Dec,中文
版同 mmmm
mmmm :使用完整方式显示月份名称,英文版显示为
January-December,中文版
为一月~十二月
yy
:按两位整数方式显示年份(00-99)
yyyy :按四位整数方式显示年份(0000-9999)
定义: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,如果输入值超出范围,则产生 一个 EC onvertError 错误。 DecodeTime 过程: 定义:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
区域设置中短时间格式的定义。 LongTimeFormat :String 区域设置中长时间格式的定义。 TimeAMString :String 用来表示上午的字符串 TimePMString :String 用来表示下午的字符串 ShortMonthNames:array[1..12] of String; 用于缩略表示月份名称的数组,就是在使用 FormatDateTime 时显示的 mmm 标识的字 符串 LongMonthNames:array[1..12] of String; 用于完整表示月份名称的数组,就是在使用 FormatDateTime 时显示的 mmmm 标识的 字符串
DateUtils
function DateOf(const AValue: TDateTime): TDateTime;
描述
使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个 只带有日期的 TDateTime 类型变量。 例如: showmessage(DateTimetostr(dateof(now()))); 你得到的是 2003/03/19 而 showmessage(DateTimetostr((now()))); 得到的是 2003/03/19 10:50:49
function TimeToStr(Time: TDateTime): string; function TimeToStr(Time: TDateTime): string; 作用:将一个 TDateTime 类型的数转换成字符串,DateTimeToStr 转换日期和时间, Date
ToStr 只转换日期,TimeToStr 只转换时间。转换后的输出效果为 YYYY-M-D H:M: S StrToDateTime 函数 StrToDate 函数 StrToTime 函数 定义:function StrToDateTime(const S: string): TDateTime;
function FormatDateTime(const Format: string; DateTime:
TDateTime): s
tring;
作用:通过定义 Format 字串中的格式得到要输出时间字符串,例如要输出“今天是
2002
年 5 月 5 日,星期五”就可以用这两种方法,这两个方法的作用相同,只是一个是
,大于等于这个值则认为事本世纪,否则认为是下世纪,下面给出几个例子说明:
DateTimeToString 过程:
FormatDateTime 函数:
定义:procedure DateTimeToString(var Result: string; const Format: string;
D
ateTime: TDateTime);
h
:用一位或两位整数显示小时(0-23)
hh
:用两位整数显示小时,不足两位的用 0 补足(00-23)
n
:用一位或两位整数显示分钟(0-60)
nn
:用两位整数显示分钟,不足两位的用 0 补足(00-60)
s
:用一位或两位整数显示秒数(0-60)
ss
:用两位整数显示秒数,不足两位的用 0 补足(00-60)
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 个数,则认为是指定了月份和日期,年份采用当 前年份 , 如果在区域设置中采用两位年份的表示方法,则系统将会采用以下方法处 理: 首先在区域设置中取得两位年份的起始年份,如在区域设置中设两位年份 范围为 1932-2031 年,则起始年份为 32 年,如果这个起始年份为 0,则认为两位年份表示 的都是 本世纪,如果其实年份大于 0 ,则采用当前年份减去起始年份的值,这个值称为基 准值
-Sun,如果是中文版,则显示同 dddd。
dddd :按完整方式显示当前的星期号,如 Windows 是英文版,则显
示 Monday-
SumDay,如果是中文版,则显示星期一~星期日
ddddd :按区域设置中的短日期格式输出。
dddddd :按区域设置中的长日期格式输出。
m
:用一位或两位整数显示月份(1-12)
通过共
享变量取得输出字符串,值在 Result 中,一个是通过返回值取得输出字符串,
DateT百度文库me
参数是希望输出的日期值,Format 由格式标志与附加字符串组合而成。附加字串
用””
圈起,就像 C 中的 Printf 函数.如“今天是 2002 年 5 月 5 日,星期五”的 Format
值就是 ‘”
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime; 作用:用于在 TDataTime 类型与 TTimeStamp 之间进行互相转换。TDataTime 用一个 doubl e 描绘一个时间,而 TTimeStamp 则是采用两个整形数分别描述时间。两种类型的区 别可参 考文章开始处的数据类型描述部分。 EncodeDate 函数:
今天是”yyyy”年”mm”月”dd”日,” dddd’,yyyy,mm,dd,dddd 都是格式标识,
各
种格式标识的解释如下:
d
:用一位或两位整数显示日子(1-31)
dd
:用两位整数显示日子,不足两位的用 0 补足(01-31)
ddd
:按缩略方式显示当前的星期号,如果 Windows 是英文版,
则显示为 Mon
●function DateTimeToStr(DateTime: TDateTime): string;
z
:用一位至两位整数显示毫秒数(0-999)
zzz
:用三位整数显示毫秒数,不足三位的用 0 补足(000-999)
tt
:按照区域设置中的格式显示日期
am/pm :用于 12 小时制的显示,带有 AM 的则表示从 0 点~12 点,
pm 代表从 12 点~
0 点。
与时间相关的变量:
Delphi 封装了区域设置的各种信息,并以此定义了一系列的变量,下面介绍与时间
作用:输入一个时间,将其转换为小时(Hour),分(min),秒(Sec),微秒(MSec)的值。 TDateTime 类型与字符串型转换函数: DateTimeToStr 函数: DateToStr 函数 TimeToStr 函数 定义:function DateTimeToStr(DateTime: TDateTime): string;
各种时间类型之间的转换函数 DateTimeToFileDate 函数:
定义:DateTimeToFileDate(DateTime: TDateTime): Integer; 作用: 将一个 TDateTime 类型的时间转化为 Dos 环境中的时间,Dos 环境下对时间 的访问 方法和 VCL 中的 TdateTime 类型不一样,在进行文件操作时,为了保持时间的一致 性,需 要使用 DateTimeToFileDate 函数进行转化,返回的 Integer 的值就是 Dos 下的用于 描述时 间的值。 DateTimeToSystemTime 过程: 定义:procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TS ystemTime); 作用:将一个 TDateTime 类型的时间转换为 Win API 函数所使用的 TSystemTime 类 型,在使 用 WinApi 函数操纵时间时用到。 SystemTimeToDateTime 函数: 定义:function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTim e; 作用:将一个在 WinApi 函数中得到的 TSysTemTime 类型的数转换为 TDateTime 类型。 DateTimeToTimeStamp 函数: TimeStampToDateTime 函数: 定义:DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
相关
的部分变量:
DateSeparator :Char
日期分隔符,用于分隔年月日
TimeSeparator :Char
时间分隔符,用于分隔小时,分钟,秒
ShortDateFormat:String
区域设置中短日期格式的定义。
LongDateFormat :String
区域设置中长日期格式的定义。
ShortTimeFormat:String
ShortDayNames :array[1..7] of String; 用于缩略表示星期名称的数组,就是在使用 FormatDateTime 时显示的 ddd 标识的字 符串 LongDayNames :array[1..7] of String; 用于完整表示星期名称的数组,就是在使用 FormatDateTime 时显示的 ddd 标识的字 符串 TwoDigitYearCenturyWindow:Word = 50; 在使用两位年份时的起始年份。
mm
:用两位整数显示月份,不足两位的用 0 补足(01-12)
mmm
:使用缩略方式显示月份名称,英文版显示为 Jan-Dec,中文
版同 mmmm
mmmm :使用完整方式显示月份名称,英文版显示为
January-December,中文版
为一月~十二月
yy
:按两位整数方式显示年份(00-99)
yyyy :按四位整数方式显示年份(0000-9999)
定义: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,如果输入值超出范围,则产生 一个 EC onvertError 错误。 DecodeTime 过程: 定义:procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
区域设置中短时间格式的定义。 LongTimeFormat :String 区域设置中长时间格式的定义。 TimeAMString :String 用来表示上午的字符串 TimePMString :String 用来表示下午的字符串 ShortMonthNames:array[1..12] of String; 用于缩略表示月份名称的数组,就是在使用 FormatDateTime 时显示的 mmm 标识的字 符串 LongMonthNames:array[1..12] of String; 用于完整表示月份名称的数组,就是在使用 FormatDateTime 时显示的 mmmm 标识的 字符串