c#获取百度服务器时间

大公司的服务相对稳定,获取百度服务器的时间即无限接近获取标准的北京时间,可以用于需要严格的时间验证等场景。

此方法是根据http协议获取头文件里的date来实现的,这里用百度为例,其他家的一样,把对应的网址换成目标地址的即可。

 
///<summary>
/// 获取标准北京时间
///</summary>
public static DateTime GetBeijingTime()
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.baidu.com");
    request.Method = "HEAD";
    request.AllowAutoRedirect = false;
    HttpWebResponse reponse = (HttpWebResponse)request.GetResponse();
    string cc = reponse.GetResponseHeader("date");
    reponse.Close();
    DateTime time;
    bool s = GMTStrParse(cc, out time);
    return time.AddHours(8); //GMT要加8个小时才是北京时间
}
public static bool GMTStrParse(string gmtStr, out DateTime gmtTime)  
{
    //抓取的date是GMT格式的字符串,这里转成datetime
    CultureInfo enUS = new CultureInfo("en-US");
    bool s = DateTime.TryParseExact(gmtStr, "r", enUS, DateTimeStyles.None, out gmtTime);
    return s;
}

调用方法:string strTime = GetBeijingTime().ToString();

发表评论

电子邮件地址不会被公开。 必填项已用*标注