实时获取网络时间 并转换为北京时间的函数

时间:2015-05-30 09:14:57   收藏:0   阅读:626

unit
Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Winapi.msxml, System.DateUtils, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //实时获取网络时间的函数, 得到的是格林威治时间; 默认从 sohu 服务器获取, 因为它最快, 平均只需 15 毫秒 function GetNetTime(aUrl: WideString = http://www.sohu.com): string; begin with CoXMLHTTP.Create do begin open(Post, aUrl, False, EmptyParam, EmptyParam); send(EmptyParam); Result := getResponseHeader(Date); end; end; //格林威治时间(字符串)转换到北京时间 1 function GMT2BjDateTime(const GMT: string): TDateTime; var A: TArray<string>; begin A := GMT.Split([,, ], ExcludeEmpty); //XE4 支持 with TStringList.Create do begin CommaText := Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12; A[2] := Values[A[2]]; Free; end; Result := StrToDateTime(Format(%s/%s/%s %s, [A[3], A[2], A[1], A[4]]), FormatSettings.Create(2052)); Result := Result + 8/24; //换算成北京时间 end; //格林威治时间(字符串)转换到北京时间 2 function GMT2BjDateTime2(const GMT: string): TDateTime; var A: TArray<string>; begin A := GMT.Split([,, ], ExcludeEmpty); //XE4 支持 with TStringList.Create do begin CommaText := Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12; A[2] := Values[A[2]]; Free; end; Result := StrToDateTime(Format(%s/%s/%s %s, [A[3], A[2], A[1], A[4]]), FormatSettings.Create(2052)); Result := Result + 8/24; //换算成北京时间 end; procedure TForm1.Button1Click(Sender: TObject); var strGMT: string; bjDateTime: TDateTime; bjDateTime2: TDateTime; begin strGMT := GetNetTime(); bjDateTime := GMT2BjDateTime(strGMT); bjDateTime2 := GMT2BjDateTime2(strGMT); Label1.Caption:=strGMT + #10 + DateTimeToStr(bjDateTime); Label2.Caption:=strGMT + #10 + DateTimeToStr(bjDateTime2); end; end.

技术分享

原文:http://www.cnblogs.com/tmdsleep/p/4539813.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!