時間準確的重要性不言而喻,有時候我們對時間的要求非常嚴格,有時候也要求不允許使用者調整系統時間,有時候。。。等等情況下,我們都需要時間的同步,雖然windows也有dos命令來保持和時鐘服務進行同步,但本文另闢途徑,介紹另一種獲取標準時間並同步時間的操作。
首先,我們來看看乙個**:國家授時中心(這個是應該是時間的權威機構,裡面有各國各地的時間,我們可以通過同步該時間來實現系統時間的更新。首先分兩步,一步是獲取「國家授時中心」的時間,一步是更新系統時間。下面的**就是做這些工作。
#region 獲取網路時間
//////獲取中國國家授時中心網路伺服器時間發布的當前時間
///
///
public
static datetime getchinesedatetime()
年\d月\d日
";
string pathr =
@"hrs\s+=\s+\d
";
string patmn =
@"min\s+=\s+\d
";
string patsc =
@"sec\s+=\s+\d
";
regex regdt =
new regex(patdt);
regex reghr =
new regex(pathr);
regex regmn =
new regex(patmn);
regex regsc =
new regex(patsc);
res = datetime.parse(regdt.match(html).value);
int hr = getint(reghr.match(html).value,
false);
int mn = getint(regmn.match(html).value,
false);
int sc = getint(regsc.match(html).value,
false);
res = res.addhours(hr).addminutes(mn).addseconds(sc);
}catch
return res;
}///
///從指定的字串中獲取整數
///
///原始的字串
///是否完全匹配,若為false,則返回字串中的第乙個整數數字
///整數數字
private
static
int getint(
string origin,
bool fullmatch)
origin = origin.trim();
if (!fullmatch)
int res =
0;int.tryparse(origin,
out res);
return res;
}#endregion
複製**
#region p/invoke 設定本地時間
[dllimport(
"kernel32.dll
")]
private
static
extern
bool setlocaltime(
ref systemtime time);
[structlayout(layoutkind.sequential)]
private
struct systemtime
//////
設定本地計算機時間
///
///datetime物件
public
static
void setlocaltime(datetime dt)
#endregion
複製**
兩步操作就可以搞定時間的同步,測試效果還是不錯,不過不建議頻繁進行時間的同步處理,間隔一段時間檢查一次即可。
時間的處理 與網路時間同步
時間準確的重要性不言而喻,有時候我們對時間的要求非常嚴格,有時候也要求不允許使用者調整系統時間,有時候。等等情況下,我們都需要時間的同步,雖然windows也有dos命令來保持和時鐘服務進行同步,但本文另闢途徑,介紹另一種獲取標準時間並同步時間的操作。首先,我們來看看乙個 國家授時中心 這個是應該是...
時間的處理 與網路時間同步
時間準確的重要性不言而喻,有時候我們對時間的要求非常嚴格,有時候也要求不允許使用者調整系統時間,有時候。等等情況下,我們都需要時間的同步,雖然windows也有dos命令來保持和時鐘服務進行同步,但本文另闢途徑,介紹另一種獲取標準時間並同步時間的操作。首先,我們來看看乙個 國家授時中心 這個是應該是...
CentOS設定系統時間與網路時間同步
linux的時間分為system clock 系統時間 和real time clock 硬體時間,簡稱rtc 檢視系統時間的命令 date 設定系統時間的命令 date set 月 日 年 時 分 秒 例 date set 10 11 10 10 15 檢視硬體時間的命令 hwclock 設定硬體...