delphi 获取北京时间


本文整理自网络,侵删。

 

方法1

uses
   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);
  XmlHttp.Send;

  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;

 

方法2

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser.Navigate('http://www.timedate.cn/worldclock/ti.asp');
  tmr1.Enabled := True;
end;

procedure TForm1.WebBrowserStatusTextChange(Sender: TObject;
  const Text: WideString);
var
  strText: string;
begin
  strText := Text;
  if strText = '完成' Then
  begin
    Caption := WebBrowser.OleObject.Document.Body.Innertext;
    tmr1.Enabled := True
  end;
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
  tmr1.Enabled := False;
  WebBrowser.Refresh
end;

相关阅读 >>

Delphi 和微软的 azure 云存储

Delphi 锁定鼠标移动范围

Delphi android 保持唤醒状态

Delphi firemonkey移动应用程序将设置保存到ini文件的示例

Delphi winapi: setwindowtext - 设置窗口标题

Delphi firdac 对 sqlite 数字, int64也会被截断,会出现负数情况处理

Delphi listbox1列表随机打乱

Delphi getmodulefilename函数的用法(可以获取项目的路径,桌面的路径,我的文档的路径)

Delphi treeview添加背景图片

Delphi 遍历类中的属性

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...