c# winform 获取网络时间(转载自:https://zhidao.baidu.com/question/1695321825523478548.html)

1.窗体:一个label,1个timer;

2:代码

using System.Net;
        private void Form1_Load(object sender, EventArgs e)
        {//窗体载入后
            Timer1.Interval = 1000;
            Timer1.Start();
        }
        private void Timer1_Tick(object sender, EventArgs e)
        {//显示时间
            string netTime = GetNetDateTime();
            if(netTime != "")
            {
                LabNow.Text = "北京时间(网络):" + Convert.ToDateTime(netTime).ToString("yyyy年MM月dd dddd HH时mm分ss秒");
            }
            else
            {
                LabNow.Text = "北京时间(本地):"+DateTime.Now.ToString("yyyy年MM月dd dddd HH时mm分ss秒");
            }
        }
        public static string GetNetDateTime()
        {//获取网络时间
            WebRequest request = null;
            WebResponse response = null;
            WebHeaderCollection headerCollection = null;
            string datetime = string.Empty;
            try
            {
                request = WebRequest.Create("https://www.baidu.com");
                request.Timeout = 3000;
                request.Credentials = CredentialCache.DefaultCredentials;
                response = request.GetResponse();
                headerCollection = response.Headers;
                foreach (var h in headerCollection.AllKeys)
                {
                    if (h == "Date") {
                        datetime = headerCollection[h];
                    }
                }
                return datetime;
            }
            catch (Exception) { return datetime; }
            finally
            {
                if (request != null)
                { request.Abort(); }
                if (response != null)
                { response.Close(); }
                if (headerCollection != null)
                { headerCollection.Clear(); }
            }
        }

猜你喜欢

转载自www.cnblogs.com/nb08611033/p/8985514.html