返回顶部

收藏

C#简单代码从网络同步标准北京时间

更多
#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
//该片段来自于http://outofmemory.cn

标签:c#,.net,网络

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 姚 广远 发表 2015-06-22 07:01:45 C++ 中的封送处理概述
  2. Herb Sutter 发表 2012-08-02 11:26:37 “Strong” and “weak” hardware memory models
  3. dormy 发表 2013-12-12 02:28:41 c#.netDataGrid绑定数据库数据
  4. itcodes 发表 2014-07-22 17:00:00 C#计算时间差。
  5. 姚 广远 发表 2015-06-22 07:01:45 C++ 中的封送处理概述
  6. 姚 广远 发表 2015-04-15 05:20:48 C#语言规范—语句
  7. 米豆网 - 1000seo 发表 2012-08-21 05:09:00 .netframework中TimeZoneInfo类的使用
  8. Herb Sutter 发表 2012-12-03 21:34:30 Perspective: “Why C++ Is Not ‘Back’”
  9. Herb Sutter 发表 2013-07-09 16:47:02 Recommended reading: Why mobile web apps are slow
  10. 姚 广远 发表 2015-04-14 06:17:41 C# 语言规范 —类型、变量和值
  11. 姚 广远 发表 2015-04-13 02:54:10 C# 与 C++ 数据类型对照表
  12. 姚 广远 发表 2015-04-13 05:03:47 .NET运行机制

发表评论