C#实现从网络同步标准北京时间的方法

本文实例讲述了C#实现从网络同步标准北京时间的方法。分享给大家供大家参考。具体分析如下:

这段C#代码可以从http://www.time.ac.cn网站上获取标准的北京时间,只需简单的组合即可让本地服务器实时同步正确的北京时间

#region
/// <summary>
/// 获取标准北京时间
/// /// </summary>
/// /// <returns></returns>
///
public static DateTime GetStandardTime()
{
/// //<?xml version="1.0" encoding="GB2312" ?>
//- <ntsc>
//- <time>
// <year>2013</year>
// <month>8</month>
// <day>29</day>
// <Weekday />
// <hour>16</hour>
// <minite>29</minite>
// <second>12</second>
// <Millisecond />
// </time>
// </ntsc>
DateTime dt;
WebRequest wrt = null;
WebResponse wrp = null;
try
{
wrt = WebRequest.Create("http://www.time.ac.cn/timeflash.asp?user=flash");
wrt.Credentials = CredentialCache.DefaultCredentials;
  wrp = wrt.GetResponse();
  StreamReader sr = new StreamReader(wrp.GetResponseStream(),Encoding.UTF8);
  string html = sr.ReadToEnd();
  sr.Close();
  wrp.Close();
  int yearIndex = html.IndexOf("<year>") + 6;
  int monthIndex = html.IndexOf("<month>") + 7;
  int dayIndex = html.IndexOf("<day>") + 5;
  int hourIndex = html.IndexOf("<hour>") + 6;
  int miniteIndex = html.IndexOf("<minite>") + 8;
  int secondIndex = html.IndexOf("<second>") + 8;
  string year = html.Substring(yearIndex, html.IndexOf("</year>") - yearIndex);
  string month = html.Substring(monthIndex, html.IndexOf("</month>") - monthIndex);
  string day = html.Substring(dayIndex, html.IndexOf("</day>") - dayIndex);
  string hour = html.Substring(hourIndex, html.IndexOf("</hour>") - hourIndex);
  string minite = html.Substring(miniteIndex, html.IndexOf("</minite>") - miniteIndex);
  string second = html.Substring(secondIndex, html.IndexOf("</second>") - secondIndex);
  dt = DateTime.Parse(year + "-" + month + "-" + day + " " + hour + ":" + minite + ":" + second);
}
catch (WebException)
{
  return DateTime.Parse("2013-1-1");
}
catch (Exception)
{
  return DateTime.Parse("2013-1-1");
}
finally
{
  if (wrp != null)
 wrp.Close();
  if (wrt != null)
 wrt.Abort();
}
   return dt;
 }
#endregion

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#设置本地网络如DNS、网关、子网掩码、IP等等

    如今网络在我们的生活工作中所起的作用越来越大,可以说离开了网络我们就无法正常的工作和生活.作为程序员我们写的程序大多数也会跟网络相关,而想要使用网络首先要将机器的网络配置设置好.而手动设置的方法显然很不可取,所以我们要让程序帮我们完成.下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧. 这个Demo是通过"Win32_NetworkAdapterConfiguration"这个管理类.这里面已基本包括了IP,DNS,网关的设置信息. 在C#中使用WMI还是比较简单的

  • C#同步网络时间的方法实例详解

    本文实例讲述了C#同步网络时间的方法.分享给大家供大家参考.具体分析如下: 客户的机器的系统时间经常出错,导致给他们做的软件无法正常使用,所以后来就加了一个同步网络时间的小功能.实现起来很简单,但是却很使用. 这个小功能就是先获取网络时间,然后将系统的时间修改成从网络获得的时间.下面是具体的实现: 获取网络时间: using System; using System.Collections.Generic; using System.Linq; using System.Text; using

  • C#实现启用与禁用本地网络的方式小结【3种方式】

    本文实例总结了C#实现启用与禁用本地网络的方式.分享给大家供大家参考,具体如下: 1) 使用Hnetcfg.dll 使用Add Reference,把Hnetcfg.dll导入到工程中,会生成3个引用,主要使用NETCONLib. 在工程中要using NETCONLib; 下面是实现的代码: NetSharingManagerClass netSharingMgr = new NetSharingManagerClass(); INetSharingEveryConnectionCollect

  • c#判断网络连接状态

    运行效果 复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.Net.NetworkInformation; namespace ConsoleApplication1{    class Program    {        public static void Main(string[] args)        {            string url = "

  • c#判断网络连接状态的示例分享

    复制代码 代码如下: public partial class Form1 : Form { [DllImport("wininet.dll")] private extern static bool getInterState(out int conn, int val); public Form1()  {InitializeComponent();  getNet(); } //判断当前是否连接入Internet网络private void getNet(){int Out;if

  • c#网络唤醒功能实现

    网络唤醒实现了对网络的集中管理,即在任何时刻,网管中心的IT管理人员可以经由网络远程唤醒一台处于休眠或关机状态的计算机.使用这一功能,IT管理人员可以在下班后,网络流量最小以及企业的正常运作最不受影响的时候完成所有操作系统及应用软件的升级及其他管理任务. 为了唤醒网络上的计算机,用户必须发出一种数据包,该数据包的格式与普通数据包不同,而且还必须使用相应的专用软件才能产生.当前比较普遍采用的是AMD公司制作的Magic Packet,这套软件可以生成网络唤醒所需要的特殊数据包.该数据包包含有连续6

  • c#多线程网络聊天程序代码分享(服务器端和客户端)

    XuLIeHua类库 复制代码 代码如下: using System;using System.Collections;  using System.Collections.Generic;using System.Threading;  using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;using System.Text;using System.IO;using Sy

  • C#中判断本地系统的网络连接状态的方法

    函数InternetGetConnectedState返回本地系统的网络连接状态. 语法: BOOL InternetGetConnectedState( __out LPDWORD lpdwFlags, __in DWORD dwReserved ); 参数: lpdwFlags[out] 指向一个变量,该变量接收连接描述内容.该参数在函数返回FLASE时仍可以返回一个有效的标记.该参数可以为下列值的一个或多个. 值 含义 INTERNET_CONNECTION_CONFIGURED0x40

  • C#网络编程基础之进程和线程详解

    在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下. 一:概念 首先我们要知道什么是"进程",什么是"线程",好,查一下baike. 进程:是一个具有一定独立功能的程序关于某个数据集合的一次活动.它是操作系统动态执行的基本单元, 在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 线程:是"进程"中某个单一顺序的控制流. 关于这两个概念,大家稍微有个印象就行了,防止以后被面试官问到. 二:进程

  • C#实现从网络同步标准北京时间的方法

    本文实例讲述了C#实现从网络同步标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段C#代码可以从http://www.time.ac.cn网站上获取标准的北京时间,只需简单的组合即可让本地服务器实时同步正确的北京时间 #region /// <summary> /// 获取标准北京时间 /// /// </summary> /// /// <returns></returns> /// public static DateTime GetStan

  • python获取标准北京时间的方法

    本文实例讲述了python获取标准北京时间的方法.分享给大家供大家参考.具体分析如下: 这段python代码主要通过www.beijing-time.org的官网上获取标准的北京时间,如果你的服务器挂在网上,你可以通过这段代码定时获取北京时间,然后更新自己系统的标准时间. import time,httplib def getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org") conn.req

  • python实现定时同步本机与北京时间的方法

    本文实例讲述了python实现定时同步本机与北京时间的方法.分享给大家供大家参考.具体如下: 这段python代码首先从www.beijing-time.org上获取标准的北京时间,然后同步获取的北京时间到本地 # -*- coding: utf-8 -*- import time,httplib import threading def getBeijinTime(): try: conn = httplib.HTTPConnection("www.beijing-time.org"

  • javascript实时显示北京时间的方法

    本文实例讲述了javascript实时显示北京时间的方法.分享给大家供大家参考.具体如下: 该页面中实时显示北京时间,更改时区也可以作为显示世界时间,代码如下: 复制代码 代码如下: <script type="text/javascript"> Date.prototype.strftime = function(format){     var o = {       "M+" :  this.getMonth()+1,  //month      

  • 易语言获取北京时间的方法

    在使用易语言编程的时候需要取北京时间来完成软件的其它功能,比如验证软件的使用期限等等功能,我这里便分享一下易语言怎么取北京时间,简简单单的几步便可完成!如果这篇经验对你有所帮助,请也帮助我一下,点一下投票!谢谢 1.先运行易语言,新建windos窗口程序,并且在新建的窗口程序中画: 一.两个标签,并改好名字,标签1标题为"现在北京时间是:",第二个标题为空 二.时钟 如下图: 2.在浏览器中打开百度首页,在百度首页中输入"北京时间"并点击"百度一下&quo

  • Python检查和同步本地时间(北京时间)的实现方法

    背景 有时本地服务器的时间不准了,需要同步互联网上的时间. 解决方案 NTP时间同步,找到一些可用的NTP服务器进行同步即可. 通过获取一些大型网站的时间来同步为自己的时间. * 由于NTP时间同步,如果相差比如有好几个小时,那么时间不同步矫正回来其实是非常慢的:我本次主要就是讲第2种方案,通过Python来实现的,可以直接设置为互联网上的时间. 要点描述 假设:百度.淘宝等非常大型的网站的时间是正确的 访问百度.淘宝等网站,它返回的HTTP Header中包含一个时间戳(一般是GMT时间).

  • pytz格式化北京时间多出6分钟问题的解决方法

    起步 在django框架中,用的是 pytz 库处理时区问题,所以我也尝试用这个库来处理.但发现了一个奇怪的问题: import datetime import pytz dt = datetime.datetime(2019,6,20, 12, tzinfo=pytz.timezone('Asia/Shanghai')) print(dt) # 2019-06-20 12:00:00+08:06 为什么多出了 6 分钟来? 原因 这是因为 pytz 里保存是本地时间. fmt = '%Y-%m

  • 易语言通过百度错误页面获取北京时间的代码

    利用百度取北京时间源码 .版本 2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 XML对象, 对象 .局部变量 时间文本, 文本型 .局部变量 网络时间, 日期时间型 .如果真 (XML对象.创建 ("WinHttp.WinHttpRequest.5.1", )) XML对象.方法 ("SetTimeouts", 5000, 5000, 10000, 5000) XML对象.写属性 ("Option", 6, 0) XM

  • Unity3D如何获取时间戳或北京时间

    本文实例为大家分享了Unity3D获取时间戳或北京时间的具体代码,供大家参考,具体内容如下 单机游戏因为没有服务器下发时间戳所以要自己获取,当然也可以用现成的时间API来获取. 如果获取本地时间,会导致玩家随意修改日期来达到数据更改,如每日奖品.每日奖励等等. 单机游戏本来就不要网络的,可是获取时间需要网络,这有点矛盾,有没有谁有更好的解决方案呢? using System; using System.Collections.Generic; using System.IO; using Sys

随机推荐