Delphi时间格式问题

 不同的电脑时间格式可能不一样,有的时候可能会报错,用个简单例子写个字符串和时间的转换,算做个笔记,如要放到正式的代码中,需要好好更改

 1 unit Unit1;
 2 
 3 interface
 4 
 5 uses
 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 7   Dialogs, StdCtrls;
 8 
 9 type
10   TForm1 = class(TForm)
11     Edit1: TEdit;
12     Button1: TButton;
13     Label1: TLabel;
14     Edit2: TEdit;
15     Button2: TButton;
16     procedure Button1Click(Sender: TObject);
17     procedure Button2Click(Sender: TObject);
18   private
19     { Private declarations }
20   public
21     { Public declarations }
22   end;
23 
24 var
25   Form1: TForm1;
26 
27 implementation
28 
29 {$R *.dfm}
30 function ConvertDateTime(sTime:String;DateFormat:string='yyyy/mm/dd';
31   TimeFormat:String='hh:nn:ss';defDatetime:TDatetime=36526):TDateTime;
32 var
33   settings,oldSettings: TFormatSettings;
34   vDateSeparator:string;
35   d,t:string;
36 begin
37   GetLocaleFormatSettings(GetUserDefaultLCID, settings);
38   oldSettings:=settings;
39   if true then
40   begin
41 
42   end;
43 
44   //这个只是做个例子,
45   d:= Copy(DateFormat,5,1);
46   settings.DateSeparator:=d[1];
47   t:=Copy(TimeFormat,3,1);
48   settings.TimeSeparator:=t[1];
49 
50   if DateFormat<>'' then
51     settings.ShortDateFormat :=DateFormat;
52   if TimeFormat<>'' then
53     settings.ShortTimeFormat :=TimeFormat;
54   try
55     Result:= strToDateTime(sTime,settings);
56   except
57     result:=defDatetime;
58   end;
59   oldSettings:=settings;
60 end;
61 procedure TForm1.Button1Click(Sender: TObject);
62 begin
63   Label1.Caption:=FormatDateTime('yyyy/mm/dd hh:mm:ss zzz',ConvertDateTime(Edit1.Text,Edit2.text ));
64   //ShowMessage(FormatDateTime('yyyy/mm/dd hh:mm:ss zzz',VarToDateTime(Edit1.Text))); 这个一般般,不太好用
65 end;
66 
67 procedure TForm1.Button2Click(Sender: TObject);
68 var
69   vDatetime01,vDatetime02:TDateTime ;
70 begin
71   vDatetime01:=0;
72   vDatetime02:=vDatetime01+8888+0.258;
73   ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',vDatetime02));
74   ShowMessage(IntToStr(Trunc(0)));
75 
76 end;
77 
78 end.
原文地址:https://www.cnblogs.com/dmqhjp/p/15459209.html