go 时间错误
invalid operation: n * time.Second (mismatched types int and time.Duration)
package main
import "time"
func main() {
n := 1
time.Sleep(n * time.Second)
}
time.Sleep支持参数是常量,变量需要强制类型转换成time.Duration。
time.Sleep(time.Duration(n) * time.Second)
time.Sleep参数单位是纳秒,1s相当于1 * 10^9纳秒。
package main
import "time"
const num = 1
func main() {
time.Sleep(num * time.Second)
}
以上代码生成汇编代码
go tool compile -S main.go
go完成了常量的time.Duration的转换。
输出时间格式错误
package main
import (
"fmt"
"time"
)
func main() {
// 秒后面带小数
fmt.Println(time.Now())
// 数据库存储时间
// 不带小数,先转成秒数时间戳再转成Time
fmt.Println(time.Unix(time.Now().Unix(), 0))
}
执行结果
2022-09-11 20:19:10.0588864 +0800 CST m=+0.004011701
2022-09-11 20:19:10 +0800 CST