小编S. *_*mir的帖子

如何通过 go syscall 设置系统日期和时间

我尝试使用 go 系统调用设置 Linux 系统时间和日期,但总是收到无效日期错误。当我在终端上执行调用时,日期可能是错误的,它总是成功结束。

\n

这是我的测试代码:

\n
package main\n\nimport (\n    "os/exec"\n    "time"\n    "os"\n    "syscall"\n    "fmt"\n)\n\nfunc main() {\n    fiveDaysFromNow := time.Now().Add(time.Hour * 24 * 5)\n    err := SetSystemDate(fiveDaysFromNow)\n    if err != nil {\n        fmt.Printf("Error: %s", err.Error())\n    }\n}\n\nfunc SetSystemDate(newTime time.Time) error {\n    binary, lookErr := exec.LookPath("date")\n    if lookErr != nil {\n        fmt.Printf("Date binary not found, cannot set system date: %s\\n", lookErr.Error())\n        return lookErr\n    } else {\n        //dateString := newTime.Format("2006-01-2 15:4:5")\n        dateString := newTime.Format("2 Jan 2006 15:04:05")\n        fmt.Printf("Setting system date …
Run Code Online (Sandbox Code Playgroud)

go

3
推荐指数
1
解决办法
4272
查看次数

标签 统计

go ×1