C#实现从网络同步标准北京时间的方法
本文实例讲述了C#实现从网络同步标准北京时间的方法。分享给大家供大家参考。具体分析如下:
这段C#代码可以从http://www.time.ac.cn网站上获取标准的北京时间,只需简单的组合即可让本地服务器实时同步正确的北京时间
#region
///<summary>
///获取标准北京时间
//////</summary>
//////<returns></returns>
///
publicstaticDateTimeGetStandardTime()
{
/////<?xmlversion="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>
DateTimedt;
WebRequestwrt=null;
WebResponsewrp=null;
try
{
wrt=WebRequest.Create("http://www.time.ac.cn/timeflash.asp?user=flash");
wrt.Credentials=CredentialCache.DefaultCredentials;
wrp=wrt.GetResponse();
StreamReadersr=newStreamReader(wrp.GetResponseStream(),Encoding.UTF8);
stringhtml=sr.ReadToEnd();
sr.Close();
wrp.Close();
intyearIndex=html.IndexOf("<year>")+6;
intmonthIndex=html.IndexOf("<month>")+7;
intdayIndex=html.IndexOf("<day>")+5;
inthourIndex=html.IndexOf("<hour>")+6;
intminiteIndex=html.IndexOf("<minite>")+8;
intsecondIndex=html.IndexOf("<second>")+8;
stringyear=html.Substring(yearIndex,html.IndexOf("</year>")-yearIndex);
stringmonth=html.Substring(monthIndex,html.IndexOf("</month>")-monthIndex);
stringday=html.Substring(dayIndex,html.IndexOf("</day>")-dayIndex);
stringhour=html.Substring(hourIndex,html.IndexOf("</hour>")-hourIndex);
stringminite=html.Substring(miniteIndex,html.IndexOf("</minite>")-miniteIndex);
stringsecond=html.Substring(secondIndex,html.IndexOf("</second>")-secondIndex);
dt=DateTime.Parse(year+"-"+month+"-"+day+""+hour+":"+minite+":"+second);
}
catch(WebException)
{
returnDateTime.Parse("2013-1-1");
}
catch(Exception)
{
returnDateTime.Parse("2013-1-1");
}
finally
{
if(wrp!=null)
wrp.Close();
if(wrt!=null)
wrt.Abort();
}
returndt;
}
#endregion
希望本文所述对大家的C#程序设计有所帮助。