本文整理自网络,侵删。
引用单元 comobj,DateUtils
//从英特网上获取北京时间
function GetInternetTime: string;
var
XmlHttp: OleVariant;
datetxt: string;
DateLst: TStringList;
mon: string;
timeGMT, GetNetTime: TDateTime;
s: string;
begin
XmlHttp := CreateOleObject('Microsoft.XMLHTTP');
XmlHttp.Open('GET', 'http://open.baidu.com/special/time/', False);
try
XmlHttp.Send;
except
showmessage('网络未连通!');
end;
datetxt := XmlHttp.GetResponseHeader('Date');
datetxt := Copy(datetxt, Pos(',', datetxt) + 1, 100);
datetxt := StringReplace(datetxt, 'GMT', '', []);
datetxt := Trim(datetxt);
if datetxt = '' then Exit;
DateLst := TStringList.Create;
while Pos(' ', datetxt) > 0 do
begin
DateLst.Add(Copy(datetxt, 1, Pos(' ', datetxt) - 1));
datetxt := Copy(datetxt, Pos(' ', datetxt) + 1, 100);
end;
DateLst.Add(datetxt);
if DateLst[1] = 'Jan' then
mon := '01'
else if DateLst[1] = 'Feb' then
mon := '02'
else if DateLst[1] = 'Mar' then
mon := '03'
else if DateLst[1] = 'Apr' then
mon := '04'
else if DateLst[1] = 'Mar' then
mon := '05'
else if DateLst[1] = 'Jun' then
mon := '06'
else if DateLst[1] = 'Jul' then
mon := '07'
else if DateLst[1] = 'Aug' then
mon := '08'
else if DateLst[1] = 'Sep' then
mon := '09'
else if DateLst[1] = 'Oct' then
mon := '10'
else if DateLst[1] = 'Nov' then
mon := '11'
else if DateLst[1] = 'Dec' then
mon := '12';
s := DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3];
//标准时间
// ShowMessage(s);
// '/' or '-'
timeGMT := StrToDateTime(DateLst[2] + '-' + mon + '-' + DateLst[0] + ' ' + DateLst[3]);
//转换时区
GetNetTime := IncHour(TimeGMT, 8);
// ShowMessage(FormatDateTime('yyyy年mm月dd日 HH:NN:SS', GetNetTime));
FreeAndNil(DateLst);
Result:= FormatDateTime('yyyy-mm-dd HH:NN:SS', GetNetTime);
end;
相关阅读 >>
Delphi 用 tbytesstream 类实现的读文件为十六进制字符的函数
Delphi 程序运行提示 “database login”对话框,让输入adoconnection1 的username和password
Delphi 网上获取北京时间xmlhttprequest如何访问需要安全验证的网站
更多相关阅读请进入《Delphi》频道 >>