從Internet時間伺服器擷取標準時間

來源:互聯網
上載者:User

由於本機系統不準確,所以決定從Internet 擷取來校正系統,說幹就幹。

程式設計步驟

1、建立一個工程;

2、在表單上放一個TEdit控制項和一個TClientSocket(在Internet頁下)控制項。TEdit用來顯示取得的格林尼治轉化成北京後的,TClientSocket用來從Internet 擷取的格林尼治;

3、程式碼

procedure TForm1.FormCreate(Sender: TObject);

begin

ClientSocket1.Host :=‘tick.usno.navy.mil‘;// 美國海軍天文台;

ClientSocket1.Port :=13;

ClientSocket1.Open;

end;

procedure TForm1.ClientSocket1Read(Sender: TObject;

Socket: TCustomWinSocket);

var

TempTime: TDateTime;

hh,mm,ss,ms: word;

sTime : string;

begin

sTime := Socket.ReceiveText;// 取得格林尼治;

sTime:=Copy(sTime,12,8);// 取得部分;

DecodeTime(StrToTime(sTime),hh,mm,ss,ms);

hh:=(hh+8) mod 24;// 轉化成北京;

TempTime:=EncodeTime(hh,mm,ss,ms);

Edit1.Text :=TimeToStr(TempTime);

end;

4、編譯運行,稍微等幾秒鐘(和你的網路速度有關,等了大概一秒鐘),TEdit控制項就顯示出了由格林尼治轉化得到的北京。

怎麼樣?很簡單吧。趕快試一下吧!需要說明一點:由於網路延時的緣故,這

個程式得到的會和有幾秒的誤差,但除非你用來控制火箭的發射,否

則,這無妨大礙。

是從美國海軍天文台得到,你還可以從別的上獲間,但由於每個的格式不同,所以在編寫程式時要注意作相應的處理。

網域名稱組織

Clock.sgi.comSGI

Tick.mit.edu麻省理工學院

Time.nist.govNIST

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.