DELPHI获得系统当前时间日期和格式化时间

合集下载

Delphi格式化日期浮动值FormatDateTime和FormatFloat用法

Delphi格式化日期浮动值FormatDateTime和FormatFloat用法

Delphi 格式化日期浮动值FormatDateTime 和FormatFloat 用法Delphi 格式化日期/浮动值 FormatDateTime 和 FormatFloat 用法1、FormatDateTime 格式化日期1.1 原型:1 2 3 4 5 6 7 8 9 10 function FormatDateTime(const Format: string; DateTime: TDateTime): string;beginDateTimeToString(Result, Format, DateTime);end;function FormatDateTime(const Format: string; DateTime: TDateTime; const FormatSettings: TFormatSettings): string;beginDateTimeToString(Result, Format, DateTime, FormatSettings); end;1.2 Format 参数介绍:• c 以短时间格式显示时间,即全部是数字的表示1 F ormatdateTime('c',now); //2020-11-6 9:55:40• d 对应于时间中的日期,日期是一位则显示一位,两位则显示两位1 F ormatdateTime('d',now); //1~31• dd 和d 的意义一样,但它始终是以两位来显示的1 F ormatdateTime('dd',now); //01~31• ddd 显示的是星期几1 F ormatdateTime('ddd',now); //星期一•o dddd 和ddd 显示的是一样的。

但上面两个如果在其他国家可能不一样。

• ddddd (5个d ) 以短时间格式显示年月日1 F ormatdateTime('ddddd',now); //2020-11-06• dddddd (6个d ) 以长时间格式显示年月日1 F ormatdateTime('dddddd',now); //2020年11月6日• e/ee/eee/eeee 以相应的位数显示年1 F ormatdateTime('ee',now); //04 (表示04年)• m/mm/mmm/mmmm 表示月1 2 3 4 FormatdateTime('m',now); //9FormatdateTime('mm',now); //09FormatdateTime('mmm',now); //9月FormatdateTime('mmmm',now); //9月• yy/yyyy 表示年1 2 FormatdateTime('yy',now); //20FormatdateTime('yyyy',now); //2020• h/hh, n/nn, s/ss ,z/zzz 分别表示小时、分、秒、毫秒 • t 以短时间格式显示时间1 F ormatdateTime('t',now); //10:17• tt 以长时间格式显示时间1 F ormatdateTime('tt',now); //10:18:46• ampm 以长时间格式显示上午还是下午1 F ormatdateTime('ttampm',now); //10:22:57上午1.3 加普通的字符串可以用双引号隔开那些特定义的字符,这样普通字符串中如果含特殊的字符就不会被显示为时间格式:1 F ormatdateTime('"today is" c',now); //today is 2020-11-6 10:26:581.4 加"-"或"\"来分开日期:1 2 FormatdateTime('"today is" yy-mm-dd',now); //today is 20-11-06 FormatdateTime('"today is" yy\mm\dd',now); //today is 20\11\061.5 用":"来分开时间1 F ormatdateTime('"today is" hh:nn:ss',now); //today is 10:32:231.6 Delphi 示例:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 procedure FormatDateTimes;vars: string;begin//FormatDateTime 的参数1是 String 格式指令, 参数2是 TDateTime 类型的时间s := FormatDateTime('c', Now); {返回: 2007-12-18 23:56:05}{指令 c 表示用短格式显示日期与时间}s := FormatDateTime('d', Now); {返回: 19}s := FormatDateTime('d', StrToDateTime('2008-1-1')); {返回: 1}{d 表示日期}s := FormatDateTime('dd', Now); {返回: 19}s := FormatDateTime('dd', StrToDateTime('2008-1-1')); {返回: 01}{dd 表示双位日期}s := FormatDateTime('ddd', Now); {返回: 星期三}s := FormatDateTime('dddd', Now); {返回: 星期三}{ddd 与 dddd 表示星期; 可能对不同的语种会有区别}s := FormatDateTime('ddddd', Now); {返回: 2007-12-19}{ddddd 五个 d 表示短格式日期}s := FormatDateTime('dddddd', Now); {返回: 2007年12月19日}{dddddd 六个 d 表示长格式日期}s := FormatDateTime('e', Now); {返回: 7}{e 表示年, 1位} s := FormatDateTime('ee', Now); {返回: 07}{ee 表示年, 2位} s := FormatDateTime('eee', Now); {返回: 2007}s := FormatDateTime('eeee', Now); {返回: 2007}{eee 与 eeee 返回4位数年}s := FormatDateTime('m', Now); {返回: 12}{m 表示月, 1位}s := FormatDateTime('mm', StrToDateTime('2008-1-1')); {返回: 01}{mm 表示月, 2位}s := FormatDateTime('mmm', Now); {返回: 十二月}s := FormatDateTime('mmmm', Now); {返回: 十二月}{mmm 与 mmmm 表32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 示长格式月}s := FormatDateTime('y', Now); {返回: 07}s := FormatDateTime('yy', Now); {返回: 07}s := FormatDateTime('yyy', Now); {返回: 2007}s := FormatDateTime('yyyy', Now); {返回: 2007}{y yy yyy yyyy 表示年; 和 e 略有不同}s := FormatDateTime('t', Now); {返回: 0:21}s := FormatDateTime('tt', Now); {返回: 0:22:13}{t tt 表示时间} s := FormatDateTime('ampm', Now); {返回: 上午}s := FormatDateTime('tampm', Now); {返回: 0:24 上午}{ampm 表示上午、下午}s := FormatDateTime('h', StrToDateTime('2007-12-30 9:58:06')); {返回: 9}s := FormatDateTime('hh', StrToDateTime('2007-12-30 9:58:06')); {返回: 09}{h hh 表示时}s := FormatDateTime('n', StrToDateTime('2007-12-30 9:58:06')); {返回: 58}s := FormatDateTime('nn', StrToDateTime('2007-12-30 9:58:06')); {返回: 58}{n nn 表示分}s := FormatDateTime('s', StrToDateTime('2007-12-30 9:58:06')); {返回: 6}s := FormatDateTime('ss', StrToDateTime('2007-12-30 9:58:06')); {返回: 06}{s ss 表示秒}s := FormatDateTime('z', Now); {返回: 24}s := FormatDateTime('zz', Now); {返回: 524}s := FormatDateTime('zzz', Now); {返回: 524}{z zz zzz 表示毫秒} s := FormatDateTime('yy\mm\dd', Now); {返回: 07\12\19}s := FormatDateTime('yy/mm/dd', Now); {返回: 07-12-19}s := FormatDateTime('yy-mm-dd', Now); {返回: 07-12-19}s := FormatDateTime('yy*mm*dd', Now); {返回: 07*12*19}{使用分隔符, - 是默认的, / 是与 - 等效的, 假如我非要用 / 显示呢?}s := FormatDateTime('yy"/"mm"/"dd', Now); {返回: 07/12/19}s := FormatDateTime('"当前时间是: "yyyy-m-d h:n:s:zz', Now); {返回: 当前时间是: 2007-12-19 0:47:16:576}{混入的字符串要包含在双引号中}ShowMessage(s);end;2、FormatFloat 格式化浮动值2.1 原型:1 2 3 function FormatFloat(const Format: string; Value: Extended): string; varBuffer: array[0..255] of Char;4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 beginif Length(Format) > SizeOf(Buffer) - 32 then ConvertError(@SFormatTooLong);SetString(Result, Buffer, FloatToTextFmt(Buffer, Value, fvExtended,PChar(Format)));end;function FormatFloat(const Format: string; Value: Extended; const FormatSettings: TFormatSettings): string;varBuffer: array[0..255] of Char;beginif Length(Format) > SizeOf(Buffer) - 32 then ConvertError(@SFormatTooLong);SetString(Result, Buffer, FloatToTextFmt(Buffer, Value, fvExtended,PChar(Format), FormatSettings));end;Extended 类型是所有浮点值中表示范围最大的,如果传入该方法的参数比如Double 或者其他,则可以保存不会超出范围。

Delphi 常用日期与时间函数

Delphi 常用日期与时间函数

Delphi 常用日期与时间函数1 获取特定的日期与时间本小节将为您介绍Delphi 所提供的获取特定日期与时间的函数.这些函数稍后将有详细的范例说明.笔者这里将以列表的方式先说明每一个函数所代表的意义,如图示:函数名称单元文件所代表的意义NowSysUtils此函数可返回现在的日期与时间,其返回值为TDateTime类型DateSysUtils此函数可返回现在的日期,其返回值为TDateTime类型TimeSysUtils此函数可返回现在的时间,其返回值为TDateTime类型TodayDateUtils此函数可返回今天的日期,其返回值为TDateTime类型,此函数的结果与Date函数相同. TomorrowDateUtils此函数可返回昨天的日期,其返回值为TDateTime类型YesterdayDateUtils此函数可返回明天的日期,其返回值为TDateTime类型CurrentyearSysUtils此函数可返回现在所属的年度,其返回值为4的整数.例如:2001HoursperdaySysUtils此常数定义每天的小时数.HoursPerDay =24;MinsperdaySysUtils此常数定义每天的分钟数.MinsPerDay = MinsPerDay*60SecsperdaySysUtils此常数定义每天的秒数.SecPerDay = MinsPerDay *60msecsperdaySysUtils此常数定义每天的毫秒数.MSecsPerDay =SecsperDay*1000Now (返回当前的日期时间)引用单元:SysUtils函数声明:Function Now : TDateTime;范例D-1Procedure TForm1.Button1Click(Sender: TObject); VarMyDateTime : TDateTime;beginMyDateTime :=Now;Showmessage(DateTimeToStr(MyDateTime)); end;Date(返回当前的日期)引用单元:SysUtils函数声明:Function Day :TDateTime;范例D-2Procedure TForm1.Button1Click(Sender: TObject); VarMyDateTime : TDateTime;beginMyDateTime :=Date;Showmessage(DateTimeToStr(MyDateTime)); end;Time(返回当前的时间)引用单元:SysUtils函数声明:Function Time:TDateTime;范例D-3Procedure TForm1.Button1Click(Sender: TObject); VarMyDateTime : TDateTime;beginMyDateTime :=Time;Showmessage(DateTimeToStr(MyDateTime)); end;Today(返回今天的日期)引用单元:DateUtils函数声明:Function Today :TDateTime;范例D-4Procedure TForm1.Button1Click(Sender: TObject); VarMyDateTime : TDateTime;Begin//uses DateUtilsMyDateTime :=Today;Showmessage(DateTimeToStr(MyDateTime)); end;Tomorrow(返回明天的日期)引用单元:DateUtils函数声明:Function Tomorrow:TDateTime;范例D-5Procedure TForm1.Button1Click(Sender: TObject);VarMyDateTime : TDateTime;Begin//uses DateUtilsMyDateTime :=Tomorrow;//MyDateTime : Now +1; //两者相同Showmessage(DateTimeToStr(MyDateTime)); //不包含时间部分end;Yesterday(返回昨天的日期)引用单元:DateUtils函数声明:Function Yesterday :TDateTime;范例D-6Procedure TForm1.Button1Click(Sender: TObject);VarMyDateTime : TDateTime;Begin//uses DateUtilsMyDateTime :=Yesterday;//MyDateTime : Now -1; //两者相同Showmessage(DateTimeToStr(MyDateTime)); //不包含时间部分end;CurrentYear(返回现在所属的年度)引用单元:SysUtils函数声明:Function CurrentYear :Word;范例D-7Procedure TForm1.Button1Click(Sender: TObject);VarThisYear: Word;Beginthis year := CurrentYear;Showmessage(IntToStr(ThisYear)); // 4位整数end;HoursPerDay,MinsPerDay,SecsPerDay及MsecsPerDay等日期与时间常数. 引用单元:SysUtils函数声明:Function CurrentYear:Word;范例D-8Procedure TForm1.Button1Click(Sender: TObject);BeginShowmessage('每天的小时数=' + IntToStr(HoursperDay)); //24 Showmessage('每天的分钟数=' + IntToStr(MinsperDay)); // 1440Showmessage('每天的秒数=' + IntToStr(SecsperDay)); //24Showmessage('每天的毫秒数=' + IntToStr(MSecsperDay)); //24end;D.2 日期处理函数:函数名称单元文件所代表的意义YearOfDateUtils此函数可获取TDateTime格式中的年度,其返回值为Word类型.YearsBeTweenDateUtils此函数可返回两个指定日期间的年份,一年以365.25天为计算单位.其返回值不包含小数部分YearSpanDateUtils此函数可返回两个指定日期间的年份,一年以365.25天为计算单位.其返回值包含小数部分StartOfAYearDateUtils此函数可返回特定年份的第一天EndOfAYearDateUtils此函数可返回特定年份的最后一天StrtOfTheYearDateUtils此函数可返回特定日期的该年第一天EndOfTheYearDateUtils此函数可返回特定日期的该年最后一天IncYearDateUtils此函数可将指定的TDateTime变量加上指定的年度,其默认值为1年MonthOfDateUtils此函数可获取TDateTime格式中的月份,其返回值为Word类型MonthOfTheYearDateUtils此函数可获取TDateTime格式中的月份,其返回值为Word类型MonthBetweenDateUtils次函数可返回两个指定日期间的月份数,一个月以30.4375天为计算单位.其返回值不包含小数部分MonthSpanDateUtils次函数可返回两个指定日期间的月份数,一个月以30.4375天为计算单位.其返回值包含小数部分StartOfAMonthDateUtils此函数可返回特定年月的第一天EndOfAMonthDateUtils此函数可返回特定年月的最后一天StartOfTheMonthDateUtils此函数可返回指定日期的该年的第一天EndOfTheMonthDateUtils此函数可返回指定日期的该年的最后一天IncMonthDateUtils此函数可将指定的TDateTime变量加上指定的月份,其默认值为加上1个月IncAMonthDateUtils此函数可将指定的年月日加上指定的月份,其默认值为加上1个月DaysInAYearDateUtils此函数可返回指定年份的总天数DaysInYearDateUtils此函数可返回指定TDateTime变量中该年分的总天数DaysInAMonthDateUtils此函数可返回指定月份的总天数DaysInMonthDateUtils此函数可返回指定TDateTime变量中该月份的总天数DaysOfDateUtils此函数可获取TDateTime格式中的日期,其返回值为Word类型DaysBetweenDateUtils此函数可获取格式中的日期,其返回值不包含小数部分DaySpanDateUtils此函数可返回两个指定日期间的天数,其返回值包含小数部分DayOfTheYearDateUtils此函数可返回指定TDateTime变量为该年的第几天.例如2月1日则返回32 DayOfTheMonthDateUtils此函数可返回指定TDateTime变量为该月的第几天,其返回值介于1到31 DayOfTheWeekDateUtils此函数可返回指定TDateTime变量为该周的第几天,其返回值介于1到7.星期一为第一天. DayOfWeekDateUtils此函数可返回指定TDateTime变量为该周的第几天,其返回值介于1到7.星期日为第一天. StartOfADayDateUtils此函数可返回指定日期一天的开始时间,其返回值为TDateTime类型.其时间默认为12:00:000 AMEndOfADayDateUtils此函数可返回指定日期一天的结束时间,其返回值为TDateTime类型.其时间默认为11:59:999 PMStartOfTheDayDateUtils此函数可返回指定TDateTime变量的一天开始时间,其返回值为TDateTime类型.其时间默认为:12:00:000 AMEndOfTheDayDateUtils此函数可返回指定TDateTime变量的一天结束时间,其返回值为TDateTime类型.其时间默认为11:59:999PMIncDayDateUtils此函数可为指定日期加上特定的天数,其返回值为TDateTime类型,其默认天数为1天WeeksInAYearDateUtils此函数可返回指定年度的周数,其返回值不是52就是53WeeksInYearDateUtils此函数可返回指定TDateTime变量的周数,其返回值不是52就是53WeekOfDateUtils次函数可返回指定日期为该年的第几周,其返回值为1~53WeekOfTheYearDateUtils次函数可返回指定日期为该年的第几周,其返回值为1~53WeekOfTheMonthDateUtils次函数可返回指定日期为该月的第几周,其返回值为1~6WeeksBetweenDateUtils此函数可返回两个指定日期间的周数,其返回值不包含小数部分WeekSpanDateUtils此函数可返回两个指定日期间的周数,其返回值包含小数部分StartOfAweekDateUtils此函数可返回指定日期一周的开始时间,其返回值为TDateTime类型.其时间默认为12:00:000 PMEndOfAWeekDateUtils此函数可返回指定日期一周的结束时间,其返回值为TDateTime类型.其时间默认为11:59:999 PMStartOfTheWeekDateUtils此函数可返回指定TDateTime变量的一周开始时间,其返回值为TDateTime类型.其其时间默认为12:00:000 AMEndOfTheWeekDateUtils此函数可返回指定TDateTime变量的一周结束时间,其返回值为TDateTime类型.其时间默认为11:59:999 AMIncWeekDateUtils此函数可将指定日期加上指定周数,其返回值为TDateTime类型YearOf(返回指定日期的年度)引用单元:DateUtils函数声明:Function YearOf ( const AValue : TDateTime) :Word;范例D-9Procedure TForm1.Button1Click(Sender: TObject);Begin//三者都相同Showmessage('年度=' + IntToStr(YearOf(Now)));Showmessage('年度=' + IntToStr(YearOf(Date)));Showmessage('年度=' + IntToStr(YearOf(Today)));end;YearsBetween(返回两个指定日期间的年份)引用单元:DateUtils函数声明:Function YearsBetween ( const ANow, AThen : TDateTime) :Integer;范例D-10Procedure TForm1.Button1Click(Sender: TObject);Begin//不包含小数,一年以365.25天为计算单位Showmessage('几年=' + IntToStr(YearsBetween(Now,Now+560))); //1end;YearSpan(返回两个指定日期间的年份)引用单元:DateUtils函数声明:Function YearsSpan( const ANow , AThen : TDateTime) :Double; 范例D-11Procedure TForm1.Button1Click(Sender: TObject);Begin//包含小数,一年以365.25天为计算单位Showmessage('几年=' + FloatToStr(YearSpan(Now,Now+560)));//1.53….end;StartOfAYear(返回特定年份的第一天)引用单元:DateUtils函数声明:Function StartOfAYear ( const AYear) : TDateTime;范例D-12Procedure TForm1.Button1Click(Sender: TObject);BeginShowmessage(DateTimeToStr(StartOfAYear(2001)));//2001/1/1 早上12:00:00end;EndOfAYear(返回特定年份的最后一天)引用单元:DateUtils函数声明:Function EndOfAYear ( const AYear) : TDateTime;范例D-13Procedure TForm1.Button1Click(Sender: TObject);BeginShowmessage(DateTimeToStr(EndOfAYear(2001)));//2001/12/31 下午11:59:59end;StartOfTheYear(返回指定日期的该年的第一天)引用单元:DateUtils函数声明:Function StartOfTheYear ( const AValue : TDateTime) :TDateTime; 范例D-14Procedure TForm1.Button1Click(Sender: TObject);BeginShowmessage(DateTimeToStr(StarOfTheYear(Now)));//指定的年度/1/1早上12:00:00end;EndOfTheYear(返回指定日期的该年的最后一天)引用单元:DateUtils函数声明:Function EndOfTheYear ( const AValue : TDateTime) :TDateTime; 范例D-15Procedure TForm1.Button1Click(Sender: TObject);BeginShowmessage(DateTimeToStr(StarOfTheYear(Now)));//指定年度/12/31下午11:59:59end;IncYear(将指定的TDateTime变量加上指定的年)引用单元:DateUtils函数声明:Function IncYear ( const AValue : TDateTimel; const ANumberOfYears : Integer =1) :TDateTime;范例D-16Procedure TForm1.Button1Click(Sender: TObject);varmyDateTime : TDateTime;BeginmyDateTime : = IncYear(Now,3); //往后加3年Showmessage(DateTimeToStr(myDateTime));End;MonthOf(获取TDateTime格式中的月份)引用单元:DateUtils函数声明:Function MonthOf ( const AValue : TDateTime) :Word;范例D-17Procedure TForm1.Button1Click(Sender: TObject);varmyDateTime : TDateTime;m : Integer;BeginmyDateTime : = Now;//两个函数获取相同的结果m := MonthofTheYear(myDateTime);Showmessage(IntToStr(m));end;MonthOfTheYear(获取TDateTime格式中的月份)引用单元:DateUtils函数声明:Function MonthOfTheYear ( const AValue : TDateTime) :Word;范例D-18Procedure TForm1.Button1Click(Sender: TObject);vari :Integer;f :Double;Begini := MonthsBetween(Now,Now+89);//差89天Showmessage(IntToStr(i));//2f := MonthSpan(Now,Now+89);//差89天Showmessage(FloatToStr(f));//2.924…End;MonthsBetween(返回两个指定日期间的月份数)引用单元:DateUtils函数声明:Function MonthsBetween ( const ANow, AThen : TDateTime) :Integer;MonthSpan(返回两个指定日期间的月份数)引用单元:DateUtils函数声明:Function MonthSpan ( const ANow, AThen : TDateTime) :Double;StartOfAMonth(返回特定年月的第一天)引用单元:DateUtils函数声明:Function StartOfAMonth ( const AYear, AMonth : Word) : TDateTime; EndOfAMonth(返回特定年月的最后一天)引用单元:DateUtils函数声明:Function EndOfTheMonth ( const AYear, AMonth : Word) : TDateTime; StartOfTheMonth(返回特定年月的第一天)引用单元:DateUtils函数声明:Function StartOfTheMonth ( const AValue : TDateTime) :TDateTime; EndOfTheMonth(返回特定年月的最后一天)引用单元:DateUtils函数声明:Function EndOfTheMonth ( const AValue : TDateTime) :TDateTime;范例D-19varmyDateTime :TDateTime;Year,Month :Integer;BeginYear := YearOf(Now);Month :=MonthOf(Now);//找出当前月份的第一天myDateTime := StartOfAMonth(Year,Month);Showmessage(DateTimeToStr(myDateTime));//找出当前月份的最后一天myDateTime := EndOfAMonth(Year,Month);Showmessage(DateTimeToStr(myDateTime));//找出当前月份的第一天myDateTime := StartOfTheMonth(Now);Showmessage(DateTimeToStr(myDateTime));//找出当前月份的最后一天myDateTime := EndOfTheMonth(Now);Showmessage(DateTimeToStr(myDateTime));end;IncMonth(指定的TDateTime变量加上指定的月份)引用单元:DateUtils函数声明:Function IncMonth ( const Date : TDateTime ; NumberOfMonths : Integer = 1) :TDateTime;IncAMonth(指定的年月日变量加上指定的月份)引用单元:DateUtils函数声明:Procedure IncAMonth ( Var Year, Month , Day : Word ; NumberOfMonths : Integer =1 ); 范例D-20varmyDateTime :TDateTime;Year,Month,Day :Word;Begin//加上指定的月份myDateTime := IncMonth(Now,3);//加上三个月Showmessage(DateTimeToStr(myDateTime));Year := YearOf(Now);Day := Dayof(Now);//加上指定的月份IncAMonth(Year,Month,Day,3);Showmessage('Month'+IntToStr(Month));end ;DaysInAYear(返回指定年份的总天数)引用单元:DateUtils函数声明:Function DaysInAYear ( const AYear : Word) :Word; DaysInYear(返回指定TDateTime变量中该年份的总天数)引用单元:DateUtils函数声明:Function MinuteOfTheHour ( const AValue : TDateTime) :Word; DaysInAMonth(返回指定月份的总天数)引用单元:DateUtils函数声明:Function DaysInAMonth ( const AYear , AMonth : Word) :Word; DaysInMonth(返回指定TDateTime变量中该月份的总天数)引用单元:DateUtils函数声明:Function DaysInMonth ( const AValue : TDateTime) :Word;范例D-21procedure TForm1.Button1Click(Sender : TObfect) ;varmyDateTime : TDateTime ;Year, Month : Word ;I : Integer ;BeginYear := YearOf(Now) ;//获取指定年份的总天数i := DaysInAYear(Year) ;Showmessage('DaysInAYear='+IntToStr (i)) ;i := DaysInYear(now) ;Showmessage('DaysInMonth =' + IntToStr (i)) ;//获取指定月份的总天数Month := MonthOf(Now) ;i := DaysInMonth(Now) ;Showmessage( 'DaysInMonth = '+IntToStr(i)) ;end;DaysOf(获取TDateTime格式中的日期)引用单元:DateUtils函数声明:Function DaysOf ( const AValue : TDateTime) :Word;范例D-22procedure TForm1.Button1Click(Sender : TObfect) ;varDay : Word ;begin//获取指定TDateTime的日期Day := DayOf(Now) ;Showmessage(IntToStr(Day)) ;end ;DaysBetween(返回两个指定日期间的天数)引用单元:DateUtils函数声明:Function DaysBetween( const ANow, AThen : TDateTime) :Integer; DaySpan(返回两个指定日期间的天数)引用单元:DateUtils函数声明:Function DaySpan ( const ANow , AThen : TDateTime) :Double;范例D-23vari : Integer ;f : Double ;begin//获取两个日期的天数f:=DaySpan(Now-100 , Now) ;i := DaysBetween(Now-100 , Now) ;Showmessage(intToStr(i)) ; //100Showmessage(FloatToStr(f)) ; //100end ;DayOfTheYear(返回指定TDateTime变量为该年的第几天)引用单元:DateUtils函数声明:Function DayOfTheYear ( const AValue : TDateTime) :Word; DayOfTheMonth(返回指定TDateTime变量为该月的第几天)引用单元:DateUtils函数声明:Function DayOfTheMonth ( const AValue : TDateTime) :Word; DayOfTheWeek(返回指定TDateTime变量为该周的第几天)引用单元:DateUtils函数声明:Function DayOfTheWeek ( const AValue : TDateTime) :Word; DayOfWeek(返回指定TDateTime变量为该周的第几天)引用单元:DateUtils函数声明:Function DayOfWeek ( Date : TDateTime) :Integer;范例D-24procedure TForm1.Button1Click(Sender : TObfect) ;vari : Integer ;begin//返回指定TDateTime为该年的第几天i := DayOfTheYear(Now) ;Showmessage(IntToStr(i)) ;//返回指定TDateTime为该月的第几天i := DayOfTheMonth(Now) ;Showmessage(IntToStr(i)) ;//返回指定TDateTime为该周的第几天(星期一为第一天)i := DayOfTheWeek(Now) ;Showmessage(IntToStr(i)) ;end ;StartOfADay(返回指定日期一天的开始)引用单元:DateUtils函数声明:Function StartOfADay ( const AYear , AMonth, ADay : Word) :TDateTime; Function StartOfADay ( const AYear , ADayOfYear : Word) :TDateTime;范例D-25procedure TForm1.Button1Click(Sender : TObfect) ;vartmpDateTime : TDateTime ;AYear , ADayOfYear , AMonth , ADay :Word ;beginAYear := 2001 ; //指定年度ADayOfYear := 32 ;.//第32天tmpDateTime :=StartOfADay(AYear , ADayOfYear) ;Showmessage(DateTimeToStr(tmpDateTime)) ; //2001/02/01AMonth := 1 ;ADay := 32 ; //从AMonth第一天起第32天TmpDateTime := StartOfADay(AYear , AMonth , ADay) ;Showmessage(DateTimeToStr(tmpDateTime)) ; //2001/02/01end ;EndOfADay(返回指定日期一天的结束时间)引用单元:DateUtils函数声明:Function EndOfADay ( const AYear, AMonth,ADay : Word) : TDateTime; Function EndOfADay ( const AYear, ADayOfYear : Word) : TDateTime;范例D-26procedure TForm1.Button1Click(Sender : TObfect) ;vartmpDateTime : TDateTime ;AYear , ADayOfYear , AMonth , ADay : Word ;beginAYear := 2001 ; //指定年度ADayOfYear := 32 ; //第32天tmpDateTime := EndOfADay(AYear , AMonth , ADay) ;Showmessage(DateTimeToStr(tmpDateTime)) ;//2001/02/01 PM 11:59:59end ;StartOfTheDay(返回指定TDateTime变量的一天开始时间)引用单元:DateUtils函数声明:Function StartToTheDay ( const AValue : TDateTime) :TDateTime;EndOfTheDay(返回指定TDateTime变量的一天结束时间)引用单元:DateUtils函数声明:Function EndOfTheDay ( const AValue : TDateTime) : TDateTime;范例D-27procedure TForm1.Button1Click(Sender : TObfect) ;vartmpDateTime : TDateTime ;begintmpDateTime := StartOfTheDay(Now) ;Showmessage(DateTimeToStr(tmpDateTime)) ;//YYYY/MM/DD AM 12:00:00tmpDateTime := EndOfTheDay(Now) ;Showmessage(DateTo //YYYY/MM/DD PM 11:59:59end ;IncDay(可为指定日期加上特定的天数)引用单元:DateUtils函数声明:Function IncDay ( const AValue : TDateTime ; const ANumberOfDays : Integer =1) :TDateTime;范例D-28procedure TForm1.Button1Click(Sender : TObfect) ;vartmpDateTime : TDateTime ;begintmpDateTime := Incday(Now,5) ;Showmessage(DateTimeToStr(tmpDateTime)) ;//时间部分并不会改变end ;WeeksInAYear(返回指定年度的周数)引用单元:DateUtils函数声明:Function WeeksInAYear( const AYear : Word) :Word;WeeksInYear(返回指定TDateTime变量的周数)引用单元:DateUtils函数声明:Function WeeksInYear ( const AValue : TDateTime) :Word;范例D-29procedure TForm1.Button1Click(Sender : TObfect) ;varweeks : word ;beginweeks :=weeksInAYear(2001) ;Showmessage(IntToStr(weeks)) ; //52Weeks := WeeksInYear(Now) ;Showmessage(IntToStr(weeks)) ; //52end ;WeeksOf(返回指定日期为该年的第几周)引用单元:DateUtils函数声明:Function WeekOf ( const AValue : TDateTime) :Word; WeekOfTheYear(返回指定日期为该年的第几周)引用单元:DateUtils函数声明:Function WeekOfTheYear ( const AValue : TDateTime) :Word; WeekOfTheMonth(返回指定日期为该月的第几周)引用单元:DateUtils函数声明:Function WeekOfTheMonth ( const AValue : TDateTime) :Word;范例D-30Procedure TForm1.Button1Click(Sender: TObject);VarI : Word;BeginI :=WeekOf(Now);Showmessage('weekof=' + IntToStr(i));i := WeekOfTheYear(Now );Showmessage('WeekOfTheYear =' + IntToStr(i));I := WeekOfTheMonth(Now);Showmessage('WeekOfTheMonth=' + IntToStr(i));end;WeeksBetween(返回两个指定日期间的周数)引用单元:DateUtils函数声明:Function WeeksBetween ( const ANow , AThen, : TDateTime) :Integer; WeekSpan(返回两个指定日期间的周数)引用单元:DateUtils函数声明:Function WeekSpan( const ANow ,AThen : TDateTime) :Double;范例D-31Procedure TForm1.Button1Click(Sender: TObject);VarI : Integer;F :Double;BeginI :=WeeksBetween(Now , Now + 29);Showmessage(InttoStr(i)); //4F := WeekSpan(Now , Now + 29);Showmessage(FloatToStr(f)); //4.14…end;StartOfAWeek(返回指定日期一周的开始时间)引用单元:DateUtils函数声明:Function StartOfAWeek ( const AYear , AWeekOfYear : Word; const ADayOfWeek : Word = 1) : TDateTime;EndOfAWeek(返回指定日期一周的结束时间)引用单元:DateUtils函数声明:Function EndOfAWeek ( const AYear , AWeekOfYear : Word; const ADayOfWeek : Word = 7) : TDateTime;范例D-32Procedure TForm1.Button1Click(Sender: TObject);VartempDateTime: TDateTime;AYear , AWeekOfYear , ADayOfWeek : Word;BeginAYear := 2001;AWeekOfYear :=2; //第二周ADayOfWeek :=1; //第一天tempDateTime := StartofAweek(AYear, AWeekOfYear, ADayOfWeek);//2001/01/08 AM 12:00:00:00showmessage(DateTimeToStr(tempDateTime));//AYearf := 2001;//AWeekofYear :=2; //第二周ADayOfWeek : =7 ;// 第七天tempDatetime := EndOfAWeek(AYear, AWeekOfYear, AdayOfWeek);//2001/01/14 Pm 11:59:59Showmessage(DateTimeToStr(tempDateTime)); //4.14…end;StartOfTheWeek(返回指定日期一周的开始时间)引用单元:DateUtils函数声明:Function StartOfTheWeek ( const AValue : TDateTime) :TDateTime; EndOfTheWeek(返回指定日期一周的结束时间)引用单元:DateUtils函数声明:Function EndOfTheWeek ( const AValue : TDateTime) :TDateTime;范例D-33Procedure TForm1.Button1Click(Sender: TObject);VartempDateTime : TDateTime;begintempDateTime :=StartOfTheWeek(Now);//YYYY / MM / DD AM 12:00:00:00Showmessage(DateTimeToStr(tempDateTime));tempDateTime := EndOfTheWeek(Now);//YYYY / MM / DD + 6 PM 11:59 :59Showmessage(DateTimeToStr(tempDateTime));end;IncWeek(将指定日期加上指定周数)引用单元:DateUtils函数声明:Function IncWeek ( const AValue : TDateTime; const ANumberOfWeeks : Integer = 1) :TDateTime;范例D-34:Procedure TForm1.Button1Click(Sender: TObject);VartempDateTime : TDateTime;begintempDateTime :=IncWeek(Now , 5); //加上5周Showmessage(DateTimeToStr(tempDateTime));end;D.3 时间处理函数函数名称单元文件所代表的意义HoursBetweenDateUtils此函数可返回两个指定TDateTime变量间的小时数,返回值不包含小数部分.HourSpanDateUtils此函数可返回两个指定TDateTime变量间的小时数,返回值包含小数部分.HourOfDateUtils此函数可获取TDateTime格式中的小时数,其返回值为Word类型,介于0~23之间HourOfTheYearDateUtils此函数可返回指定TDateTime变量为该年的第几小时HourOfTheMonthDateUtils此函数可返回指定TDateTime变量为该月的第几小时HourOfTheWeekDateUtils此函数可返回指定TDateTime变量为该周的第几小时HourOfTheDayDateUtils此函数可返回指定TDateTime变量为该日的第几小时,返回值介于0~23之间IncHourDateUtils此函数可将指定日期加上指定小时数,其返回值为TDateTime类型MinutesBetweenDateUtils此函数可返回两个指定TDateTime变量间的分钟数,其返回值不包含小数部分MinuteSpanDateUtils此函数可返回两个指定TDateTime变量间的分钟数,返回值包含小数部分MinuteOfDateUtils此函数可获取TDateTime格式中的分钟数,其返回值为Word类型,介于0~59之间MinuteOftheYearDateUtils此函数可返回指定TDateTime变量为该年的第几分钟MinuteOfTheMonthDateUtils此函数可返回指定TDateTime变量为该月的第几分钟MinuteOfTheWeekDateUtils此函数可返回指定TDateTime变量为该周的第几分钟MinuteOfTheDayDateUtils此函数可返回指定TDateTime变量为该日的第几分钟MinuteOfTheHourDateUtils此函数可返回指定TDateTime变量为该小时的第几分钟IncMinuteDateUtils此函数可将指定日期加上指定分钟数,其返回值为TDateTime类型SecondsBetweenDateUtils此函数可返回两个指定TDateTime变量间的秒数,返回值不包含小数部分SecondSpanDateUtils此函数可返回两个指定TDateTime变量间的秒数,返回值包含小数部分SecondOfDateUtils此函数可获取TDateTime格式中的秒数,其返回值为Word类型,介于0~59之间SecondOfTheyearDateUtils此函数可返回指定TDateTime变量为该年的第几秒SecondOfTheMonthDateUtils此函数可返回指定TDateTime变量为该月的第几秒SecondOfTheWeekDateUtils此函数可返回指定TDateTime变量为该周的第几秒SecondOfTheDayDateUtils此函数可返回指定TDateTime变量为该日的第几秒SecondOfTheHourDateUtils此函数可返回指定TDateTime变量为该小时的第几秒SecondOfTheMinuteDateUtils此函数可返回指定TDateTime变量为该分钟的第几秒IncSecondDateUtils此函数可将指定日期加上指定秒数,其返回值为TDateTime类型MilliSecondsBetweenDateUtils此函数可返回两个指定TDateTime变量间的毫秒数,返回值不包含小数部分MilliSecondSpanDateUtils此函数可返回两个指定TDateTime变量间的毫秒数,返回值包含小数部分MilliSecondOfDateUtils此函数可获取TDateTime格式中的毫秒数,其返回值为Word类型,介于0~999之间MilliSecondOfTheYearDateUtils此函数可返回指定TDateTime变量为该年的第几毫秒MilliSecondOfTheMonthDateUtils此函数可返回指定TDateTime变量为该月的第几毫秒MilliSecondOfTheWeekDateUtils此函数可返回指定TDateTime变量为该周的第几毫秒MilliSecondOfTheDayDateUtils此函数可返回指定TDateTime变量为该日的第几毫秒MilliSecondOfTheHourDateUtils此函数可返回指定TDateTime变量为该小时的第几毫秒MilliSecondOfTheMinuteDateUtils此函数可返回指定TDateTime变量为该分钟的第几毫秒MilliSecondOfTheSecondDateUtils此函数可返回指定TDateTime变量为该秒的第几毫秒IncMilliSecondDateUtils此函数可将指定日期加上指定毫秒数,其返回值为TDateTime类型HoursBetween(返回两个指定日期间的小时数)引用单元:DateUtils函数声明:Function HoursBetween ( const ANow , AThen : TDateTime) : Int64;HourSpan(返回两个指定日期间的小时数)引用单元:DateUtils函数声明:Function HourSpan ( const ANow , AThen : TDateTime) :Double; 范例D-35procedure TForm1.Button1Click(Sender : TObfect) ;varHours : Integer ;f : Double ;beginHours := HoursBetween(Now , Now+0.9) ; //加上0.9天Showmessage(FloatToStr(f)) ; //21f := HourSpan(Now , Now+0.9) ; //加上0.9天Showmessage(FloatToStr(f)) ; //21.6….end ;HourOf(获取TDateTime格式中的时数)引用单元:DateUtils函数声明:Function HourOf ( const AValue: TDateTime) :Word; HourOfTheYear(返回指定TDateTime变量为该年的第几小时)引用单元:DateUtils函数声明:Function HourOfTheYear ( const AValue : TDateTime) :Word; HourOfTheMonth(返回指定TDateTime变量为该月的第几小时)引用单元:DateUtils函数声明:Function HourOfTheMonth ( const AValue : TDateTime) :Word; HourOfTheWeek(返回指定TDateTime变量为该周的第几小时)引用单元:DateUtils函数声明:Function HourOfTheWeek ( const AValue : TDateTime) :Word; HourOfTheDay(返回指定TDateTime变量为该日的第几小时)引用单元:DateUtils函数声明:Function HourOfTheDay( const AValue : TDateTime) :Word;范例D-36procedure TForm1.Button1Click(Sender : TObfect) ;varHours : Integer ;BeginHours := HourOf(Now) ;Showmessage('HourOf = '+ IntToStr(Hours)) ;Hours := HourOfTheYear(How) ;Showmessage('HourOfTheYear = '+IntToStr(Hours)) ;Hours := HourOfTheMonth(How) ;Showmessage('HourOfTheMonth = '+IntToStr(Hours)) ;Hours := HourOfTheWeek(How) ;Showmessage('HourOfTheWeek = '+IntToStr(Hours)) ;Hours := HourOfTheDay(How) ;Showmessage('HourOfTheDay = '+IntToStr(Hours)) ;end ;IncHour(将指定日期加上指定小时数)引用单元:DateUtils函数声明:Function IncHour ( const AValue : TDateTime , const ANumberAOfHours : Int64=1) :TDateTime;范例D-37procedure TForm1.Button1Click(Sender : TObfect) ;varTempDateTime : TDateTime ;beginTempDateTime := IncHour(Now, 23) ; //增加23小时Showmessage(DateTimeToStr(TempDateTime)) ;end ;MinuteBetween(返回两个指定TDateTime变量间的分钟数)引用单元:DateUtils函数声明:Function MinuteBetween ( const Anew, AThen : TDateTime) :Int64;MinuteSpan(返回两个指定TDateTime变量间的分钟数)引用单元:DateUtils函数声明:Function MinuteSpan ( const Anew,AThen : TDateTime) :Double;MinuteOf(获取TDateTime格式中的分钟数)引用单元:DateUtils函数声明:Function MinuteOf( const AValue : TDateTime) :Word;范例D-38procedure TForm1.Button1Click(Sender : TObfect) ;vari := Integer ;'f -= Double ;w := Word ;begini := MinutesBetween(Now , Now + 1) ; //增加24小时Showmessage(IntToStr(i)) ; //1440f := MinuteSpan(Now , Now + 1.1) ; //增加24*1.1小时Showmessage(FloatToStr(f)) ; //1583.99….w := MinuteOf(Now) ; //显示当前的分钟数Showmessage(IntToStr(w)) ; //介于0~59之间End ;:MinuteOfTheYear(返回指定TDateTime变量为该年的第几分钟)引用单元:DateUtils函数声明:Function MinuteOfTheYear ( const AValue : TDateTime) :LongWord; MinuteOfTheMonth(返回指定TDateTime变量为该月的第几分钟)引用单元:DateUtils函数声明:Function MinuteOfTheMonth ( const AValue : TDateTime) :Word;MinuteOfTheWeek(返回指定TDateTime变量为该周的第几分钟)引用单元:DateUtils函数声明:Function MinuteOfTheWeek ( const AValue : TDateTime) :Word; MinuteOfTheDay(返回指定TDateTime变量为该日的第几分钟)引用单元:DateUtils函数声明:Function MinuteOfTheDay ( const AValue : TDateTime) :Word;MinuteOfTheHour(返回指定TDateTime变量为该小时的第几分钟)引用单元:DateUtils函数声明:Function MinuteOfTheHour ( const AValue : TDateTime) :Word;范例D-39procedure TForm1.Button1Click(Sender : TObfect) ;varMinutes : Integer ;beginMinutes := MinuteOfTheYear(Now) ;Showmessage('MinuteOfTheYear =' + IntToStr(Minutes)) ;Minutes := MinuteOfTheMonth(Now) ;Showmessage('MinuteOfTheMonth =' + IntToStr(Minutes)) ;Minutes := MinuteOfTheWeek(Now) ;Showmessage('MinuteOfTheWeek =' + IntToStr(Minutes)) ;Minutes := MinuteOfTheDay(Now) ;Showmessage('MinuteOfTheDay =' + IntToStr(Minutes)) ;Minutes := MinuteOfTheHour(Now) ;Showmessage('MinuteOfTheHour =' + IntToStr(Minutes)) ;End ;IncMinute(将指定日期加上指定分钟数)引用单元:DateUtils函数声明:Function IncMinute ( const AValue : TDateTime; const ANumberOfMinutes: Int64 = 1) :TDateTime;范例D-40procedure TForm1.Button1Click(Sender : TObfect) ;varTempDateTime : TDateTime ;BeginTempDateTime := IncMinute(Now ,40) ; //增加40分钟Showmessage(DateTimeToStr(TempDateTime)) ;End ;SecondsBetween(返回两个指定TDateTime变量间的秒数)引用单元:DateUtils函数声明:Function SecondsBetween ( const ANow, AThen : TDateTime) :Int64;SecondSpan(返回两个指定TDateTime变量间的秒数)引用单元:DateUtils函数声明:Function SecondSpan ( const ANow, AThen : TDateTime) :Double;SecondOf(获取TDateTime格式中的秒数)引用单元:DateUtils函数声明:Function SecondOf ( const AValue : TDateTime) :Word;范例D-41procedure TForm1.Button1Click(Sender : TObfect) ;vari : Integer ;f : Double ;w : Word ;begini :=SecondsBetween(Now ,Now + 1) ; //增加24小时Showmessage(IntToStr(i)) ; //86400f := SecondSpan(Now , Now + 1.1) ; //增加24*1.1小时Showmessage(FloatToStr(f)) ; //95039.99….w := SecondOf(Now) ; //显示当前的秒数Showmessage(IntToStr(w)) ; //介于0~59之间End ;SecondOfTheYear(返回指定TDateTime变量为该年的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheYear ( const AValue : TDateTime) :LongWord; SecondOfTheMonth(返回指定TDateTime变量为该月的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheMonth ( const AValue : TDateTime) :LongWord; SecondOfTheWeekr(返回指定TDateTime变量为周年的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheWeek ( const AValue : TDateTime) :LongWord; SecondOfTheDay(返回指定TDateTime变量为该周的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheDay ( const AValue : TDateTime) :LongWord; SecondOfTheHour(返回指定TDateTime变量为该小时的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheHour ( const AValue : TDateTime) :Word; SecondOfTheMinute(返回指定TDateTime变量为该分钟的第几秒)引用单元:DateUtils函数声明:Function SecondOfTheMinute ( const AValue : TDateTime) :Word;范例D-42procedure TForm1.Button1Click(Sender : TObfect) ;varSeconds : Integer ;beginSeconds := SecondOfTheYear(Now) ;Showmessage('SecondOfTheYear = ' + IntToStr(Seconds)) ;Seconds := SecondOfTheMonth(Now) ;Showmessage('SecondOfTheMonth = ' + IntToStr(Seconds)) ;Seconds := SecondOfTheWeek(Now) ;。

delphi时间格式操作

delphi时间格式操作

delphi时间格式操作FormatDateTime('yyyy-mm-dd hh:nn:ss',Now)FormatDateTime('hh:mm:ss:zz',Now)if (TimeOf(now) < pub_StartWorkTime) or (TimeOf(now) > pub_EndWorkTime) thenexit; //⾮⼯作时间退出读inipub_StartWorkTime := MyIniFile.Readtime('Setup','StartWorkTime',strtotime('08:00'));pub_EndWorkTime := MyIniFile.Readtime('Setup','EndWorkTime',strtotime('23:59'));Delphi中TFileTime、TSystemTime 及 DOS 时间 核⼼提⽰://TSystemTime 是系统定义的结构, ⼀看就是最⽅便实⽤的那种, 但要占 16 个字节:TSystemTime = recordwYear: Word;wMonth: Word;wDayOf...//TSystemTime 是系统定义的结构, ⼀看就是最⽅便实⽤的那种, 但要占 16 个字节:TSystemTime = recordwYear: Word;wMonth: Word;wDayOfWeek: Word;wDay: Word;wHour: Word;wMinute: Word;wSecond: Word;wMilliseconds: Word;end;//TFileTime 也是系统定义的结构, 同 TDateTime ⼀样⼤⼩, 但结构原理完全不同:TFileTime = recorddwLowDateTime: DWORD;dwHighDateTime: DWORD;end;TFileTime 记录的是从 1601-1-1 起的时间值, 以 100 纳秒(也就是万分之⼀毫秒)为单位//DOS 时间就是⼀个 32 位(4字节)的整数(Integer), 好像没有专门的结构, 可⽤ LongRec 等代为解析.DOS 时间的尺⼨是 TFileTime、TDateTime 的 1/2, 是 TSystemTime 的 1/4; 因此不很精确.它只能表⽰从 1980-2107 之间的时间, 且只能精确到 2 秒.//下⾯⼏个函数⼀看就知道谁转换到谁:SysUtils.DateTimeToSystemTime();SysUtils.SystemTimeToDateTime();Windows.SystemTimeToFileTime();Windows.FileTimeToSystemTime();Windows.FileTimeToDosDateTime();Windows.DosDateTimeToFileTime();//但并没有直接给 TFileTime 和 TDateTime 直接转换的函数;//下⾯两个函数是 TDateTime 和 DOS 时间的转换; ⽂件的创建、修改、访问时间就是⽤这个 DOS 时间记录的.SysUtils.DateTimeToFileDate();SysUtils.FileDateToDateTime();{转换到 DOS 时间的例⼦:}varT: TDateTime;F,DosTime: Integer;FileTime: TFileTime;SystemTime: TSystemTime;begin{构建⼀个 TDateTime, 并转换到 DOS 时间}T := EncodeDateTime(2009, 5, 22, 11, 22, 33, 999);F := DateTimeToFileDate(T);ShowMessage(IntToStr(F)); //985029328; 注意这个数很⼩, 下⾯会发现不精确{再从 DOS 时间转回 TDateTime}T := FileDateToDateTime(F);ShowMessage(FormatDateTime('yyyy-m-d h:m:s:zzz', T)); //2009-5-22 11:22:32:000; 只精确到 2 秒{TDateTime -> TSystemTime -> TFileTime -> DOS 时间}DateTimeToSystemTime(T, SystemTime);SystemTimeToFileTime(SystemTime, FileTime);FileTimeToDosDateTime(FileTime, LongRec(DosTime).Hi, longRec(DosTime).Lo);ShowMessage(IntToStr(SizeOf(SystemTime))); //985029328; 和上⾯得到的值⼀样end;DateTimeToFileDate 转换出的时间不是 TFileTime, ⽽是 Dos 时间或叫⽂件时间;譬如我们⽤ FileAge 函数返回的⽂件最后修改的时间(⼀个 Integer)就是个 Dos 时间.{读取记事本程序最后被修改的时间}varDosTime: Integer;FileTime: TFileTime;SysTime: TSystemTime;DateTime: TDateTime;str: string;beginDosTime := FileAge('C:\Windows\System32\Notepad.exe');ShowMessage(IntToStr(DosTime)); //948804037; 这是读取结果{转换为可以理解的格式}DosDateTimeToFileTime(LongRec(DosTime).Hi, LongRec(DosTime).Lo, FileTime);FileTimeToSystemTime(FileTime, SysTime);str := Format('%d年%d⽉%d⽇ %d:%d:%d', [SysTime.wYear, SysTime.wMonth,SysTime.wDay, SysTime.wHour, SysTime.wMinute, SysTime.wSecond]);ShowMessage(str); //2008年4⽉13⽇ 19:14:10{如果仅仅是要这个时间, 可以这样}FileAge('C:\Windows\System32\Notepad.exe', DateTime);ShowMessage(DateTimeToStr(DateTime)); //2008-4-13 19:14:10end;⼜是我们可能只需要⼀个 TSystemTime 格式的时间, 没必要转来转去, 可以直接⽤ GetLocalTime 函数获取: varSysTime: TSystemTime;DT1, DT2: TDateTime;beginGetLocalTime(SysTime);DT1 := SystemTimeToDateTime(SysTime);DT2 := Now;{这两个时间显⽰应该是⼀样的}ShowMessage(DateTimeToStr(DT1));ShowMessage(DateTimeToStr(DT2));end;另外 FileTimeToLocalFileTime 和 LocalFileTimeToFileTime 是本地时间和 UTC(国际标准计时) 的转换;⽤ API 函数获取的 TFileTime 时间都是 UTC 格式的, 需要转换使⽤.Tags:。

PHP获取当前日期和时间及格式化方法参数

PHP获取当前日期和时间及格式化方法参数

PHP获取当前日期和时间及格式化方法参数PHP获取当前日期和时间及格式化方法参数这篇文章主要介绍了PHP获取当前日期和时间及格式化方法参数,本文先是讲解了获取当前日期时间的方法,其后总结了格式化参数,需要的朋友可以参考下.使用函式 date() 实现复制代码代码如下:<?php echo $showtime=date("Y-m-d H:i:s");?>显示的格式: 年-月-日小时:分钟:秒相关时间参数:a - "am" 或是 "pm"A - "AM" 或是 "PM"d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"D - 星期几,三个英文字母; 如: "Fri"F - 月份,英文全名; 如: "January"h - 12 小时制的小时; 如: "01" 至 "12"H - 24 小时制的小时; 如: "00" 至 "23"g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"i - 分钟; 如: "00" 至 "59"j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"l - 星期几,英文全名; 如: "Friday"m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"M - 月份,三个英文字母; 如: "Jan"s - 秒; 如: "00" 至 "59"S - 字尾加英文序数,二个英文字母; 如: "th","nd"t - 指定月份的.天数; 如: "28" 至 "31"U - 总秒数w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) Y - 年,四位数字; 如: "1999"y - 年,二位数字; 如: "99"z - 一年中的第几天; 如: "0" 至 "365"【PHP获取当前日期和时间及格式化方法参数】。

Delphi格式化函数:Format.

Delphi格式化函数:Format.

Format('%0.2d',[1] = '01'; //2表示两位 // formatdatetime('aaa',now;//当前星期formatdatetime('c',now;//以2003-8-16 23:03:23的形式显示当前日期和时间formatdatetime('d',now;//显示当前的日期 1被显示成1 formatdatetime('dd',now;//显示当前的日期 1被显示成01 formatdatetime('ddd',now;//显示当前的星期formatdatetime('ddddd',now;//以2003-8-1的形式显示年月日formatdatetime('dddddd',now;//以2003年8月1日的形式显示年月日formatdatetime('dddddd ddd',now;//以‘2003年8月1日星期五’的形式显示年月日及星期 formatdatetime('e',now;//显示年的最后一位2003被显示成3formatdatetime('ee',now;//显示年的最后二位2003被显示成03formatdatetime('eee',now;//显示年2003被显示成2003 formatdatetime('h',now;//显示小时1被显示成1 formatdatetime('hh',now;//显示小时1被显示成01 formatdatetime('m',now;//显示月1被显示成1 formatdatetime('mm',now;//显示月1被显示成01 formatdatetime('mmm',now;//以‘八月’的形式显示月份formatdatetime('n',now;//显示当前分钟1被显示成1 formatdatetime('nn',now;//显示当前分钟1被显示成01 formatdatetime('s',now;//显示当前秒1被显示成1 formatdatetime('ss',now;//显示当前秒1被显示成01 formatdatetime('t',now;//以1:05的形式显示小时和分钟 formatdatetime('tt',now;//以1:06:13的形式显示小时和分钟和秒formatdatetime('y',now;////显示年的最后二位2003被显示成03formatdatetime('yyy',now;//显示年2003被显示成2003 formatdatetime('z',now;//显示当前毫秒1被显示成1 formatdatetime('zz',now;//显示当前毫秒1被显示成01 formatdatetime('zzz',now;//显示当前毫秒1被显示成001 除上面之外的字母或字符就直接显示。

DELPHI Variant变量的使用技巧

DELPHI Variant变量的使用技巧

DELPHI Variant变量的使用技巧。

delphi 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。

实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。

Variant变量没有类型一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。

需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。

variant 变量的类型检查和计算在运行期间才进行,编译器不会提示代码中的潜在错误,这些错误在进一步测试中才能发现。

总之,你可以认为包含variant变量的代码是解释性代码,正如解释性代码一样,许多操作直到执行时才能知道,这对代码运行速度会有很大的影响。

上面对Variant 类型的使用提出了警告,现在来看看Variant 类型究竟能干什么。

基本上说,如果声明了一个variant 变量:varV: Variant;你就可以把各种不同类型的值赋给它:V := 10;V := 'Hello, World';V := 45.55;一旦得到一个variant 值,你可以把它拷贝给任何兼容或不兼容的数据类型。

如果你把值赋给不兼容的数据类型,Delphi 会力尽所能进行转换,无法转换则颁布一个运行时间错误。

实际上,variant变量中不仅包含了数据还包含有类型信息,并允许一系列运行时间操作,这些操作很方便,但运行速度慢且安全性差。

见例VariTest,它是上面代码的扩展。

窗体上有三个编辑框,一对按钮,第一个按钮的OnClick 事件代码如下:procedure TForm1.Button1Click(Sender: TObject);varV: Variant;beginV := 10;Edit1.Text := V;V := 'Hello, World';Edit2.Text := V;V := 45.55;Edit3.Text := V;end;很有趣是不是?你可以把一个值为字符串的variant 变量赋给编辑框Text 属性,还可以把值为整数或浮点数的variant 变量赋给Text 属性。

delphi 时间间隔函数

delphi 时间间隔函数

Delphi中的时间间隔函数1. 概述在Delphi中,时间间隔函数用于计算时间的差异,以便在程序中测量时间间隔或执行定时任务。

Delphi提供了多个时间间隔函数,包括Now、GetTickCount、GetTime、FormatDateTime等。

这些函数可以帮助开发人员更方便地处理时间相关的操作。

本文将详细介绍Delphi中的时间间隔函数,包括函数的定义、用途和工作方式等。

通过深入了解这些函数,开发人员可以更好地利用它们来处理时间相关的任务。

2. Now函数2.1 定义Now函数用于获取当前的系统时间。

它返回一个TDateTime类型的值,表示当前的日期和时间。

2.2 用途Now函数常用于记录事件的发生时间、计算时间间隔以及执行定时任务等。

通过获取当前时间,开发人员可以在程序中准确地记录和处理时间相关的操作。

2.3 示例代码varcurrentTime: TDateTime;begincurrentTime := Now;ShowMessage(DateTimeToStr(currentTime));end;上述代码演示了如何使用Now函数获取当前时间,并通过ShowMessage函数将其显示在一个对话框中。

3. GetTickCount函数3.1 定义GetTickCount函数用于获取自系统启动以来经过的毫秒数。

它返回一个DWORD类型的值,表示从系统启动到当前时间所经过的毫秒数。

3.2 用途GetTickCount函数常用于测量程序执行的时间间隔,或者用于实现简单的定时功能。

通过获取系统启动到当前时间所经过的毫秒数,开发人员可以计算程序执行的时间,或者根据一定的时间间隔执行特定的操作。

3.3 示例代码varstartTime, endTime, elapsedTime: DWORD;beginstartTime := GetTickCount;// 执行一些操作endTime := GetTickCount;elapsedTime := endTime - startTime;ShowMessage('程序执行时间:' + IntToStr(elapsedTime) + '毫秒');end;上述代码演示了如何使用GetTickCount函数计算程序的执行时间。

在Delphi中处理数据库日期型字段的显示与输入

在Delphi中处理数据库日期型字段的显示与输入

专栏:Delphi技术文章编号:934 文章类别:原创作者:yh 加贴时间:00-5-20 11:57:05在Delphi中处理数据库日期型字段的显示与输入关键词:Delphi - MIS---- 在使用Delphi进行数据库设计时,不可避免的会涉及到日期型字段的输入问题。

不过与Microsoft的Access 97中文版等相比,Delphi本身提供的日期型字段的显示和输入方式并不适合中国人的习惯。

因此对于日期型字段的处理,大家提出了不少解决方法,但是处理结果在显示和输入上并不统一,例如显示时可以实现“yyyy年mm月dd日”的格式,但是在输入时还是要按照国外的习惯用“yyyy-mm-dd”的形式进行输入;而使用TdateTimePicker 进行选择输入总嫌麻烦;有些方法还要修改系统的一些设置属性,因而在进行软件发布时要将系统的属性进行调整;采用第三方控件的方式则还要将控件打包发布。

而且对于常用到的“1999年”、“1999年11月”等日期格式,没有进行相应的处理。

这里我根据自己的实践,利用TField的OnGetText和OnSetText两个事件的结合,以期达到日期型字段的显示和输入的统一,并可以处理我们常见的“1999年”、“1999年11月”等日期形式的显示和输入,全部利用Delphi提供的事件实现,不需要修改任何系统设置。

进行相应的扩展后,还可以用于时间的显示和输入,如“hh点mm分”等。

同时,由于是直接控制TField的事件,所以不论使用TDBGrid还是用TDBEdit,都可以正常的进行统一处理,而不必分开考虑。

采用类似的方法,还可以应用于非数据库应用程序中的日期输入。

---- 1 基本思想---- 利用TField的EditMask属性,将其同时作为显示和输入的掩码,在TField的OnGetText 事件中处理日期字段的显示,而在OnSetText事件中处理输入值的有效性判断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

获得系统当前时间
本例中主要应用了FormatDateTime函数,此函数主要用于将日期时间格式化为指定的字符串。

利用该函数可以输出许多形式的时间格式。

程序运行结果如图6.1所示
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := FormatDateTime('hh:nn:ss',Now());
end;
获得系统当前日期
当用户单击窗体中的按钮时,程序会利用DateTimeToStr函数将当前日期转换为一个字符串显示在标签上。

程序运行结果如图6.2所示。

图6.2 获得系统当前日期
主要代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := DateTimeToStr(Date());
end;
将日期时间格式化为指定格式
本例将日期时间格式化为指定格式主要是应用了FormatDateTime函数。

使用该函数可以将当前日期时间格式化为自定义格式。

程序运行结果如图6.3所示。

图6.3 将日期时间格式化为指定格式
主要代码如下:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := DateTimeToStr(now());
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label2.Caption := FormatDateTime('yyyy年mm月dd日hh时nn分ss秒',now()); end;。

相关文档
最新文档