如果字符串格式是固定的,可以考虑从中取出,年、月、日、时、分、秒,再用function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word):TDateTime;
来生成。
如果你的电脑日期时间格式和你的字符串格式一致,就可以用StrToDatetime直接转,但不一致的话就会出错。
日期转换成字符串 有个函数可以帮你解决: FormatDateTime():string,他有两个参数,第一个是时间(TDateTime型),第二个是你要转换的格式(例如'yyyyMMdd hh:mm:ss')
举例:拿系统的Now这个时间来说
S := FormatDateTime(Now, 'hh:mm:ss'); 就可以将TDateTime型转换成string型了,但是有个条件,第一个参数必须是'yyyy/MM/dd'这样的格式,如果没有'/'会发生错误
2008-3-22转换为"20080322"可以用StringReplace('2008-3-22', '-', '', [rfReplaceAll]);和AnsiReplaceStr('2008-3-22', '-', '');//这个需要引用strUtils单元
一般用Now函数
procedure TForm1Button1Click(Sender: TObject);
begin
Label1Caption := TimeToStr(Now); //时间
Label2Caption := DateToStr(Now); //日期
Label3Caption := DateTimeToStr(Now); //日期+时间
end;
其他一些有用的时间函数
use DateUtils;(此单元里有许多关于时间的函数)。我今天就只看了这么多了,还有许多读自己去看吧。
里面有太多的关于时间的函数了,如:输入一个时间,可以提取date或time部分,此月有多少天,比较两个时间的’大小’,…自己看帮助。
function CompareDate(const A, B: TDateTime): TValueRelationship;比较A,B日期哪个时间先发生?还是同时发生?
function CompareDateTime(const A, B: TDateTime): TValueRelationship
function DaysBetween(const ANow, AThen: TDateTime): Integer;两时间相隔多少天?
function DaysInAMonth(const AYear, AMonth: Word): Word;某年某月有多少天
function DaysInAYear(const AYear: Word): Word;某年有多少天。
function DaysInMonth(const AValue: TDateTime): Word;某月有多少天
procedure DecodeDateMonthWeek(const AValue: TDateTime; out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word);对应out参数:哪年,哪月,此月的第几周,是周几。
function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime;输入某年,此年第几天,out得到此天日期。
DayOfWeek(TDateTime)某个时间是星期几?
DayOfTheYear(TDateTime)一年的第几天。
function DayOfTheMonth(const AValue: TDateTime): Word;第几天of the Month
function DateOf(const AValue: TDateTime): TDateTime;提取时间部分
这个方法可以完成你的要求。用法可见帮助示例。
procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay,
AHour, AMinute, ASecond, AMilliSecond: Word); (注它必须引用DateUtils单元);
它把时间的各个部分都分离出来了。与之对应的函数为:
function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word):TDateTime;
function IncMinute (const AValue: TDateTime; const ANumberOfMinute: Int64 = 1): TDateTime;
例:IncMinute(now,N);增加N分钟在NOW的基础上。可以为负。
在Delphi中有一个函数now(),就是用于取得当前时间的,包含时、分、秒。
在窗体上放置一个TEdit控件,用来显示时间,再放置一个TTimer控件,用来更新时间。
将TTimer的Interval属性设置为100,并添加代码:
procedure TForm1Timer1Timer(Sender: TObject);
begin
edit1Text:=TimeToStr(now());
end;
运行后,窗体上就是实时显示最新时间了。
//FormatDateTime中mm代表的是月份,取分钟请用nn
uses DateUtils;
var
date :TDateTime;
begin
date := Now;
edit1Text := FormatDateTime('yyyymmddhhnnss', date);
Edit2Text := FormatDateTime('yyyymmddhhnnss', IncMinute(date, -10));
end;
以上就是关于delphi 如何将字符串转换成时间全部的内容,包括:delphi 如何将字符串转换成时间、Delphi中如何将日期和时间转换为字符串型、Delphi中提取系统时间的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)