C# 获取北京时间,并修改本地时间与北京时间同步
2013-12-06 14:06
681 查看
获取北京时间(方法有很多,这里只讲其中之一)代码如下:
修改本地时间,代码如下:
#region GetBeijingTime ///<summary> /// 获取标准北京时间2 ///</summary> ///<returns></returns> public static DateTime GetBeijingTime() { //t0 = new Date().getTime(); //nyear = 2011; //nmonth = 7; //nday = 5; //nwday = 2; //nhrs = 17; //nmin = 12; //nsec = 12; 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("\r\n", ""); } string year = tempArray[1].Substring(tempArray[1].IndexOf("nyear=") + 6); string month = tempArray[2].Substring(tempArray[2].IndexOf("nmonth=") + 7); string day = tempArray[3].Substring(tempArray[3].IndexOf("nday=") + 5); string hour = tempArray[5].Substring(tempArray[5].IndexOf("nhrs=") + 5); string minite = tempArray[6].Substring(tempArray[6].IndexOf("nmin=") + 5); string second = tempArray[7].Substring(tempArray[7].IndexOf("nsec=") + 5); string time = String.Format("{0}-{1}-{2} {3}:{4}:{5}", year, month, day, hour, minite, second); dt = DateTime.Parse(time);//year + "-" + month + "-" + day + "" + hour + ":" + minite + ":" + second } catch (WebException) { return DateTime.Now; } catch (Exception) { return DateTime.Now; } finally { if (wrp != null) wrp.Close(); if (wrt != null) wrt.Abort(); } return dt; } #endregion
修改本地时间,代码如下:
#region SetLocalTime [DllImport("Kernel32.dll")] private static extern bool SetLocalTime(ref SYSTEMTIME lpSystemTime); [StructLayout(LayoutKind.Sequential)] private struct SYSTEMTIME { public ushort wYear; public ushort wMonth; public ushort wDayOfWeek; public ushort wDay; public ushort wHour; public ushort wMinute; public ushort wSecond; public ushort wMilliseconds; } public static void SetSystemTime(DateTime date) { SYSTEMTIME lpTime = new SYSTEMTIME(); lpTime.wYear = Convert.ToUInt16(date.Year); lpTime.wMonth = Convert.ToUInt16(date.Month); lpTime.wDayOfWeek = Convert.ToUInt16(date.DayOfWeek); lpTime.wDay = Convert.ToUInt16(date.Day); DateTime time = date; lpTime.wHour = Convert.ToUInt16(time.Hour); lpTime.wMinute = Convert.ToUInt16(time.Minute); lpTime.wSecond = Convert.ToUInt16(time.Second); lpTime.wMilliseconds = Convert.ToUInt16(time.Millisecond); SetLocalTime(ref lpTime); } #endregion
相关文章推荐
- c# 获取北京时间更新本地计算机
- C#利用win32 Api 修改本地系统时间、获取硬盘序列号
- c# 修改系统本地时间
- c# 修改系统本地时间
- linux 获取本地文件最后修改时间 c++
- C#_获取Internet时间(非本地时间)
- C# 获取北京时间 (根据纪元时间(1970/1/1)转换为DateTime)
- C# 获取文件的修改时间、访问时间、创建时间
- c#修改本机时间,获取硬盘序列号
- C# 获取文件的修改时间、访问时间、创建时间
- 从服务器获取时间并修改本地时间
- C# 获取文件的修改时间、访问时间、创建时间
- python 获取网络时间及修改本地时间
- C# 获取当前时间戳,将时间戳转换为当前本地时间
- python 获取网络时间及修改本地时间
- C#获取获取北京时间方法
- C#获取获取北京时间多种方法
- C#获取标准北京时间
- C#获取标准北京时间
- Java通过Ntp服务器获取网络时间修改本地服务器时间