熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

從Internet時間服務器獲取標准時間

2013-11-23 17:47:33  來源: Delphi編程 

  由於本機系統時間不准確所以決定從Internet 時間服務器獲取標准時間來校正系統時間說干就干

  程序設計步驟如下

    新建一個工程

    在窗體上放一個TEdit控件和一個TClientSocket(在Internet頁下)控件TEdit用來顯示取得的格林尼治時間轉化成北京時間後的時間TClientSocket用來從Internet 時間服務器獲取標准的格林尼治時間

    程序代碼如下

procedure TFormFormCreate(Sender: TObject);

begin

  ClientSocketHost :=tickusnonavymil;  // 美國海軍天文台

  ClientSocketPort :=;

  ClientSocketOpen;

end;

 

procedure TFormClientSocketRead(Sender: TObject;

  Socket: TCustomWinSocket);

var

  TempTime: TDateTime;

  hhmmssms: word;

  sTime : string;

begin

  sTime := SocketReceiveText;    // 取得格林尼治時間

  sTime:=Copy(sTime);      // 取得時間部分

  DecodeTime(StrToTime(sTime)hhmmssms);  

  hh:=(hh+) mod ;           // 轉化成北京時間

  TempTime:=EncodeTime(hhmmssms);

  EditText :=TimeToStr(TempTime);

end;

    編譯運行稍微等幾秒鐘(和你的網絡速度有關筆者等了大概一秒鐘)TEdit控件就顯示出了由格林尼治時間轉化得到的北京時間

  怎麼樣?很簡單吧趕快試一下吧!需要說明一點由於網絡延時的緣故這個程序得到的時間會和標准時間有幾秒的誤差但除非你用來控制火箭的發射否則這無妨大礙

  筆者是從美國海軍天文台得到標准時間你還可以從別的時間服務器上獲取時間但由於每個時間服務器的時間格式不同所以在編寫程序時要注意作相應的處理

   域名                                組織

Clocksgicom                       SGI

Tickmitedu                   麻省理工學院

Timenistgov                        NIST


From:http://tw.wingwit.com/Article/program/Delphi/201311/25087.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.