C#同步网络时间和本地时间

C#同步网络时间和本地时间,第1张

概述C#同步网络时间和本地时间

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

客户的机器的系统时间经常出错,导致给他们做的软件无法正常使用,所以后来就加了一个同步网络时间的小功能。实现起来很简单,但是却很使用。这个小功能就是先获取网络时间,然后将系统的时间修改成从网络获得的时间。下面是具体的实现:

获取网络时间: 
using System;  using System.Collections.Generic;  using System.linq;  using System.Text;  using System.IO;  using System.Net;  using System.Net.sockets;  using System.Text.RegularExpressions;  using System.Runtime.InteropServices;using System.Runtime;        /// <summary>      /// 网络时间      /// </summary>      public class NetTime    {               /// <summary>          /// 获取标准北京时间,读取http://www.beijing-time.org/time.asp          /// </summary>          /// <returns>返回网络时间</returns>          public DateTime GetBeijingTime()        {                     DateTime dt;            WebRequest wrt = null;            WebResponse wrp = null;            try            {                wrt = WebRequest.Create("http://www.beijing-time.org/time.asp");                wrp = wrt.GetResponse();                string HTML = string.Empty;                using (Stream stream = wrp.GetResponseStream())                {                    using (StreamReader sr = new StreamReader(stream,EnCoding.UTF8))                    {                        HTML = sr.ReadToEnd();                    }                }                string[] tempArray = HTML.Split(';');                for (int i = 0; i < tempArray.Length; i++)                {                    tempArray[i] = tempArray[i].Replace("\r\n","");                }                string year = tempArray[1].Split('=')[1];                string month = tempArray[2].Split('=')[1];                string day = tempArray[3].Split('=')[1];                string hour = tempArray[5].Split('=')[1];                string minite = tempArray[6].Split('=')[1];                string second = tempArray[7].Split('=')[1];                dt = DateTime.Parse(year + "-" + month + "-" + day + " " + hour + ":" + minite + ":" + second);            }            catch (WebException)            {                return DateTime.Parse("2011-1-1");            }            catch (Exception)            {                return DateTime.Parse("2011-1-1");            }            finally            {                if (wrp != null)                    wrp.Close();                if (wrt != null)                    wrt.Abort();            }            return dt;        }    } 
获取网络时间,返回一个DateTime对象,然后传给设置系统时间的方法,修改系统时间。
同步系统时间:
using System;using System.Collections.Generic;using System.linq;using System.Text;using System.IO;using System.Net;using System.Net.sockets;using System.Text.RegularExpressions;using System.Runtime.InteropServices;using System.Runtime;        /// <summary>    /// 更新系统时间    /// </summary>    public class UpdateTime    {        //设置系统时间的API函数        [Dllimport("kernel32.dll")]        private static extern bool SetLocalTime(ref SYstemTIME time);        [StructLayout(LayoutKind.Sequential)]        private struct SYstemTIME        {            public short year;            public short month;            public short dayOfWeek;            public short day;            public short hour;            public short minute;            public short second;            public short milliseconds;        }        /// <summary>        /// 设置系统时间        /// </summary>        /// <param name="dt">需要设置的时间</param>        /// <returns>返回系统时间设置状态,true为成功,false为失败</returns>        public static bool SetDate(DateTime dt)        {            SYstemTIME st;            st.year = (short)dt.Year;            st.month = (short)dt.Month;            st.dayOfWeek = (short)dt.DayOfWeek;            st.day = (short)dt.Day;            st.hour = (short)dt.Hour;            st.minute = (short)dt.Minute;            st.second = (short)dt.Second;            st.milliseconds = (short)dt.Millisecond;            bool rt = SetLocalTime(ref st);            return rt;        }    } 

两个方法分别写在了两个类里面,只需要在客户端实例化两个对象,然后依次调用其方法即可,简单实用。

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C#同步网络时间和本地时间全部内容,希望文章能够帮你解决C#同步网络时间和本地时间所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存