天天看點

擷取網絡時間

本地時間可能不可靠,擷取網絡上的标準時間來自動校正。

怎麼擷取?

我搞過一些網頁抓取,雖然不會python,但也畢竟是搞過。是以,如果有一些權威網站,頁面上釋出了标準時間,或者提供了相關的Web API,抓取之,通路之,不就好啦!

拿衣服。根本不用抓取。請求一下這個權威站點就好了,啥都不用抓。

Uri target = new Uri("http://time.beijing-time.org/time.asp");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(target);
req.Timeout = 30000;
var h = req.GetResponse().Headers;
if (DateTime.TryParse(h.Get("Date"), out DateTime d))
{//從消息頭裡拿日期資訊就行了。這個日期,是網站伺服器的時間,應該是準的。
//當然,如果釋出權威時間的網站的伺服器本身時間都不準,那就無語了,隻能認了
  int offset = (int)d.Subtract(DateTime.Now).TotalDays;
  save(offset);
}