1234567891011121314151617181920212223242526272829303132 |
- package ntp
- import (
- "time"
- "unsafe"
- "golang.org/x/sys/windows"
- )
- func setSystemTime(nowTime time.Time) error {
- var systemTime windows.Systemtime
- systemTime.Year = uint16(nowTime.Year())
- systemTime.Month = uint16(nowTime.Month())
- systemTime.Day = uint16(nowTime.Day())
- systemTime.Hour = uint16(nowTime.Hour())
- systemTime.Minute = uint16(nowTime.Minute())
- systemTime.Second = uint16(nowTime.Second())
- systemTime.Milliseconds = uint16(nowTime.UnixMilli() - nowTime.Unix()*1000)
- dllKernel32 := windows.NewLazySystemDLL("kernel32.dll")
- proc := dllKernel32.NewProc("SetSystemTime")
- _, _, err := proc.Call(
- uintptr(unsafe.Pointer(&systemTime)),
- )
- if err != nil && err.Error() != "The operation completed successfully." {
- return err
- }
- return nil
- }
|