博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#同步网络时间和本地时间的代码
阅读量:6090 次
发布时间:2019-06-20

本文共 3012 字,大约阅读时间需要 10 分钟。

做工程过程,将做工程过程经常用的内容做个收藏,下面内容内容是关于 C#同步网络时间和本地时间的内容,希望对各位朋友有较大用途。

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;

public class NetTime{    public DateTime GetBeijingTime()    {        DateTime dt;        WebRequest wrt = null;        WebResponse wrp = null;        try        {            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("rn", "");            }            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;

public class UpdateTime{    [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;    }    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;    }}

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

转载于:https://blog.51cto.com/14129393/2330222

你可能感兴趣的文章
网络攻防第九周作业
查看>>
全新 D 系列虚拟机型号
查看>>
android对应版本号
查看>>
java模式之模板模式——抽象类
查看>>
[ACM] hdu 1251 统计难题 (字典树)
查看>>
Android Studio 怎样打开两个项目?
查看>>
J2EE简单的分页器
查看>>
C++面试宝典2011版
查看>>
Android开发之ListView添加多种布局效果演示
查看>>
遍历hashmap
查看>>
软件工程—团队作业1(三人行)
查看>>
vim 编辑器常用命令
查看>>
mysql 处理重复数据
查看>>
ps技术--批量给图片加水印
查看>>
http请求的全过程
查看>>
matlab练习程序(对应点集配准的四元数法)
查看>>
图像融合2
查看>>
PHP语言 -- Smarty模版基础
查看>>
iOS国际化
查看>>
使用 json_in_java
查看>>