获取当前时间的年、月、日、时、分、秒的方法如下:
// 获取当前时间
now := time.Now()
// 当前时间的年、月、日、小时、分钟、秒和纳秒都可以通过现有接口直接获取
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
second := now.Second()
nanosecond := now.Nanosecond()
// 当前时间的微秒和毫秒是通过纳秒计算生成
microsecond := nanosecond / 1e3
millisecond := nanosecond / 1e6
fmt.Println(now.Format("2006-01-02 15:04:05.000000000"))
fmt.Println(year, month, day, hour, minute, second, nanosecond, microsecond, millisecond)
运行结果如下:
# 当前时间格式输出
2022-06-09 19:25:52.022598620
2022 June 9 19 25 52 22598620 22598 22
获取从1970到现在经过的时间的方法如下:
// 获取从1970经过的时间,秒和纳秒都可以通过现有接口直接获取
sec := now.Unix() // 时间戳位数为10
ms := now.UnixMilli() // 时间戳位数为13
us := now.UnixMicro() // 时间戳位数为16
ns := now.UnixNano() // 时间戳位数为19
fmt.Printf("sec:%v
ms:%v
us:%v
ns:%v
", sec, ms, us, ns)
运行结果如下:
# 1970经过的时间格式输出
sec:1654773952
ms:1654773952022
us:1654773952022598
ns:1654773952022598620
时间间隔格式化输出方法:
// 时间间隔返回的是time.Duration,下面以1h1m1s1ms1us1ns的时间间隔举例,测试各种格式的打印效果
duration := 1*time.Hour + 1*time.Minute + 1*time.Secon