Golang修改操作系統時間
需求
程序有時需要和服務器對時,發現延遲過高修改本地時間,這段代碼網上抄的,實測可用,windows環境需要以管理員身份啟動命令提示符調試
實現Demo
package main
import (
"github.com/gogf/gf/os/glog"
"github.com/gogf/gf/os/gproc"
"github.com/gogf/gf/text/gstr"
"runtime"
)
func main() {
UpdateSystemDate("2020-03-20 15:02:41.372")
}
func UpdateSystemDate(dateTime string) bool {
system := runtime.GOOS
switch system {
case "windows":
{
_, err1 := gproc.ShellExec(`date ` + gstr.Split(dateTime, " ")[0])
_, err2 := gproc.ShellExec(`time ` + gstr.Split(dateTime, " ")[1])
if err1 != nil && err2 != nil {
glog.Info("更新系統時間錯誤:請用管理員身份啟動程序!")
return false
}
return true
}
case "linux":
{
_, err1 := gproc.ShellExec(`date -s "` + dateTime + `"`)
if err1 != nil {
glog.Info("更新系統時間錯誤:", err1.Error())
return false
}
return true
}
case "darwin":
{
_, err1 := gproc.ShellExec(`date -s "` + dateTime + `"`)
if err1 != nil {
glog.Info("更新系統時間錯誤:", err1.Error())
return false
}
return true
}
}
return false
}