Delphi 获取网络时间 稳定方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
unit InternetTime;
 
interface
 
uses
System.Net.HttpClientComponent, System.SysUtilS, System.DateUtils,
Winapi.Windows;
 
function GetInternetTime(var _Time: TDateTime): Boolean;
 
function InternetTimeToSystemTimeW(pSour: LPWSTR; var pst: SYSTEMTIME; dwReserved: DWORD): BOOL; stdcall; external 'wininet.dll';
 
implementation
 
function GetInternetTime(var _Time: TDateTime): Boolean;
var
NetHTTPClient: TNetHTTPClient;
_InternetTime: string;
_SystemTime: SYSTEMTIME;
begin
Result := False;
try
NetHTTPClient := TNetHTTPClient.Create(nil);
try
NetHTTPClient.ConnectionTimeout := 3000;
_InternetTime := NetHTTPClient.Head('https://www.baidu.com/').GetHeaderValue('Date');
finally
NetHTTPClient.Free;
end;
 
if _InternetTime <> '' then
begin
_SystemTime := default(SYSTEMTIME);
if InternetTimeToSystemTimeW(@_InternetTime[1], _SystemTime, 0) then
begin
_Time := IncHour(SystemTimeToDateTime(_SystemTime), 8);
Result := True;
end;
end;
except
 
end;
 
end;
 
end.

  

 

调用百度接口基本不会出问题 

 

posted @   只如初见o  阅读(366)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示