c 同步網路時間到本地

2022-05-06 14:48:10 字數 1646 閱讀 9412

c#同步時間

第一種方法:

借用系統介面

[dllimport("user32.dll")]

private static extern bool animatewindow(intptr hwnd, int dwtime, int dwflags);

[dllimport("kernel32.dll")]

private static extern boolean setsystemtime([in, out] systemtime st);

[dllimport("kernel32.dll")]

public static extern bool setlocaltime(ref systemtime st);

[structlayout(layoutkind.sequential)]

public class systemtime

{public ushort year;

public ushort month;

public ushort dayofweek;

public ushort day;

public ushort hour;

public ushort minute;

public ushort second;

public ushort milliseconds;

然後傳入時間,呼叫介面

//systemtime st = new systemtime();

= convert.touint16(newdatetime.year);

= convert.touint16(newdatetime.month);

= convert.touint16(newdatetime.day);

ofweek = convert.touint16(newdatetime.dayofweek);

//    st.hour =

//        convert.touint16(newdatetime.hour -

//                         timezone.currenttimezone.getutcoffset(new datetime(2001,   09, 01)).hours);

= convert.touint16(newdatetime.minute);

= convert.touint16(newdatetime.second);

= convert.touint16(newdatetime.millisecond);

//return setsystemtime(st);

在使用過程中,遇到乙個問題,未解決,例如:newdatetime為網路返回時間 2013-09-30 06:20:19  這樣的話,校準時間後,並非為6點,而是下午14點,但是如果返回時間為 2013-09-30 08:00:00 則校準成功,網路查詢原因為時區差,北京為8時區之類的,

第二種方法

引入 microsoft.visualbasic

microsoft.visualbasic.dateandtime.today = newdatetime;

microsoft.visualbasic.dateandtime.timeofday = newdatetime;

不存在第一種問題

C 同步網路時間

客戶的機器的系統時間經常出錯,導致給他們做的軟體無法正常使用,所以後來就加了乙個同步網路時間的小功能。實現起來很簡單,但是卻很使用。這個小功能就是先獲取網路時間,然後將系統的時間修改成從網路獲得的時間。下面是具體的實現 using system using system.collections.ge...

Linux同步網路時間

linux伺服器執行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設定,但在做資料庫集群分片等操作時對多台機器的時間差是有要求的,此時就需要使用ntpdate進行時間同步 安裝 yum install ntpdate ntpdate簡單用法 ntpdate ip ntpda...

linux同步網路時間

linux伺服器執行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設定,但在做資料庫集群分片等操作時對多台機器的時間差是有要求的,此時就需要使用ntpdate進行時間同步。一 修改時區 cp usr share zoneinfo asia shanghai etc loca...