如何获取网页中的北京时间

zzw709 2011-01-24 11:13:40
本人想通过http://open.baidu.com/static/time/beijingtime.html获取网页中显示的时间,不知道如何用代码获取,希望朋友们能给我一些代码,谢啦!
...全文
1104 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
victor_yang 2012-01-12
  • 打赏
  • 举报
回复
function TFormMain.GetServerTime2: TDateTime;
var
i,j,y,m,d:integer;
vName,vTemp:string;
vM1,vM2:TDateTime;
vHttp:TIdHTTP;
vText:TStrings;
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
Result:=0;
if not NetIsConnected then
Exit;
vM1:=Now;
gPageLoaded3:=False;
vText:=TStringList.Create;
try

vText.Text:=IdHTTP1.Get('http://time.bj.cn/');
for i:=0 to vText.Count -1 do
begin
vTemp:= vText[i];
if Pos('class="STYLE1">',vTemp)>0 then
begin
vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp));
vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1);
y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1));

vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp));
m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1));

vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp));
d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1));

Result:=EncodeDate(y,m,d);
Exit;
end;
end;
except
Exit;
end;
end;
victor_yang 2012-01-12
  • 打赏
  • 举报
回复
function TFormMain.GetServerTime2: TDateTime;
var
i,j,y,m,d:integer;
vName,vTemp:string;
vM1,vM2:TDateTime;
vHttp:TIdHTTP;
vText:TStrings;
begin
Memo1.Lines.Clear;
Memo2.Lines.Clear;
Result:=0;
if not NetIsConnected then
Exit;
vM1:=Now;
gPageLoaded3:=False;
vText:=TStringList.Create;
try

vText.Text:=IdHTTP1.Get('http://time.bj.cn/');
for i:=0 to vText.Count -1 do
begin
vTemp:= vText[i];
if Pos('class="STYLE1">',vTemp)>0 then
begin
vTemp:=Copy(vTemp,Pos('class="STYLE1">',vTemp)+15,Length(vTemp));
vTemp:=Copy(vTemp,1,Pos('星',vTemp)-1);
y:=StrToInt(Copy(vTemp,1,Pos('年',vTemp)-1));

vTemp:=Copy(vTemp,Pos('年',vTemp)+2,Length(vTemp));
m:=StrToInt(Copy(vTemp,1,Pos('月',vTemp)-1));

vTemp:=Copy(vTemp,Pos('月',vTemp)+2,Length(vTemp));
d:=StrToInt(Copy(vTemp,1,Pos('日',vTemp)-1));

Result:=EncodeDate(y,m,d);
Exit;
end;
end;
except
Exit;
end;
end;
victor_yang 2012-01-12
  • 打赏
  • 举报
回复
function TFormMain.GetServerTime1: TDateTime;
var
Session, HttpFile: HINTERNET;
szSizeBuffer: Pointer;
dwLengthSizeBuffer: DWord;
dwReserved: DWord;
dwFileSize: DWord;
dwBytesRead: DWord;
Contents: PAnsiChar;
vName,vTemp:string;
begin
Memo1.Lines.Clear;
Session := InternetOpen('', 0, nil, nil, 0); ///初始化WININET.DLL
HttpFile := InternetOpenUrl(Session, PChar('http://www.beijingshijian.net/'), nil, 0, 0, 0); //连接服务器并读取数据
dwLengthSizeBuffer := 1024;
HttpQueryInfo(HttpFile, 5, szSizeBuffer, dwLengthSizeBuffer, dwReserved); //得到页面信息

Contents:=SysGetMem(dwFileSize); //开辟内存

InternetReadFile(HttpFile, Contents, dwFileSize, dwBytesRead); //读取文件
InternetCloseHandle(HttpFile); //释放HttpFile资源
InternetCloseHandle(Session); //释放Session资源
Memo1.Lines.Text := UTF8Decode(StrPas(Contents));


try

vName:=GetStr(Memo1.Lines.GetText,'</b><a id="t1">','<strong>年</strong>')+'年';
vTemp:=GetStr(Memo1.Lines.GetText,'<strong>年</strong>',' 星期');
vTemp:=Trim(vName+ vTemp);
vTemp:=StringReplace(vTemp,'年','-',[]);
vTemp:=StringReplace(vTemp,'月','-',[]);
vTemp:=StringReplace(vTemp,'日','',[]);
Result:=StrToDate(vTemp);
except
end;
Finalize(Contents); //释放
end;
shuihan20e 2011-01-28
  • 打赏
  • 举报
回复
等你把网页下载完了,再分析完了,可能时间就不准了,推荐楼上的方法
haochin 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keeley20 的回复:]
测试了下

http://topic.csdn.net/t/20020331/16/612537.html

这里的时间服务器是有效的,前辈的代码应该可用。
[/Quote]

这个不行吗,现成的。
zzw709 2011-01-27
  • 打赏
  • 举报
回复
webbrowser效率太低了,呵呵,希望可以有效率高的方法
pengxuan 2011-01-25
  • 打赏
  • 举报
回复
用webbrowser载入这个页面,用分析页面源码的方式获取网页中时间显示的网页元素
keeley20 2011-01-24
  • 打赏
  • 举报
回复
测试了下

http://topic.csdn.net/t/20020331/16/612537.html

这里的时间服务器是有效的,前辈的代码应该可用。
keeley20 2011-01-24
  • 打赏
  • 举报
回复
从互联网的时间服务器中获取。
hongqi162 2011-01-24
  • 打赏
  • 举报
回复
你可以是用webbrowse打开这个页面,然后分析它的页面源码


你分析出这个显示的时间有什么用?
haochin 2011-01-24
  • 打赏
  • 举报
回复

function TMain_F.CheckRegTime(RegTimeS:string) : Boolean;
var
Idhtp : TIdHTTP;
Htm : string;
TimeInt : Int64;
NetTime,RegTime : TDateTime;
Settings: TFormatSettings;
begin
Idhtp := TIdHTTP.Create(nil);
try
Htm := Idhtp.Get('http://open.baidu.com/app?module=beijingtime');
except
Htm := '';
end;
if Htm = '' then
begin
Result := False;
end else
begin
try
//网络时间
Htm := Copy(Htm, AnsiPos('time":',Htm)+Length('time":'), MaxInt);
Htm := Copy(Htm, 1, Pos('}',Htm)-1);
TimeInt := StrToInt64(Htm);
TimeInt := TimeInt div 1000;
NetTime := UnixToDateTime(TimeInt);
NetTime := IncHour(NetTime,8);
NetTime := Int(NetTime);
//注册时间
GetLocaleFormatSettings(GetUserDefaultLCID, Settings);
Settings.DateSeparator := '-';
Settings.TimeSeparator := ':';
Settings.ShortDateFormat := 'yyyy-mm-dd';
Settings.ShortTimeFormat := 'hh:nn:ss';
RegTime := StrToDate(RegTimeS,Settings);
//对比
if NetTime > RegTime then
begin
Result := False;
end else
begin
Result := True;
end;
except
Result := False;
end;
end;
Idhtp.Free;
end;
内容概要:本文系统梳理了多个科研领域的前沿研究与技术实现,重点涵盖FDTD方法的完美匹配层(PML)研究,以及Matlab/Simulink在电磁、电力、控制、通信、信号处理、图像处理、路径规划、能源系统优化等领域的仿真与算法实现。文列举了大量基于Matlab和Python的科研案例,如风电功率预测、负荷预测、无人机三维路径规划、电池系统故障诊断、雷达模拟、通信编码、微电网优化调度等,并强调结合智能优化算法(如粒子群、遗传算法、深度学习等)提升系统性能。同时,提供了丰富的代码资源与仿真模型,涵盖永磁同步电机控制、逆变器设计、多智能体任务分配、虚拟电厂调度等复杂系统,助力科研人员快速开展复现实验与创新研究。; 适合人群:具备一定编程基础,熟悉Matlab/Python工具,从事电气工程、自动化、通信、人工智能、新能源、控制科学等相关领域研究的研发人员及研究生。; 使用场景及目标:① 学习并实现FDTD仿真的PML边界条件以有效抑制数值反射;② 掌握Matlab/Simulink在多物理场建模、控制系统设计与优化算法的综合应用;③ 借助提供的代码资源完成科研复现、课程设计、竞赛项目或工程原型开发; 阅读建议:此资源以科研实战为导向,不仅提供理论方法,更强调代码实现与仿真验证。建议读者结合自身研究方向,按目录顺序查阅相关模块,下载配套代码进行调试与二次开发,以达到学以致用、融会贯通的目的。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧