zoukankan      html  css  js  c++  java
  • 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; 
     /// <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("
    ", "");
        }
        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;
      }
    }

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

  • 相关阅读:
    第二章:WebDriver 打开Firefox浏览器 和 Chrome 浏览器
    第一章:在 java 中配置 selenium jar 包的步骤
    第一章:Chrome 43 配置 java + selenium 环境
    第一章:火狐浏览器 : 环境配置: FireFox 版本38 + jdk 7 + selenium 2.53.6 + selenum-version 2.48.2
    抛弃CSDN博客 转移到 博客园来编写博客
    第一章:eclipse 中修改字体大小和编码格式
    2. VirtualBox 虚拟机:安装
    1. 在虚拟机中 添加内容
    第一章:selenium + java 环境安装 —— eclipse 中的使用
    实验二 Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/shadow-wolf/p/6654600.html
Copyright © 2011-2022 走看看