openwrt 运行golang 时候发现打印时间错误。golang读取时区的过程:
TZ/etc/localtime
所以我们可以设置/etc/localtime 的时区。但是/etc/localtime文件不是随便写的,需要符合一定的格式。所以安装时区文件:
opkg update
opkg install zoneinfo-asia
时区设置为上海:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
运行代码:
package main
import (
"fmt"
"syscall"
"time"
)
func main() {
t := time.Now().Format("2006-01-02 15:04:05")
fmt.Println(t)
fmt.Println(time.Local)
tz, ok := syscall.Getenv("TZ")
fmt.Println(tz,ok)
}
可以看到时间已经正确:
2022-05-02 22:42:28
Local
false