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

 

posted on 2023-07-15 10:28  王景迁  阅读(51)  评论(0编辑  收藏  举报

导航