时间
time.Now()
获取当前时间- 返回值是time类型
- 默认获取的是当地时间
- 使用
time.Now().UTC()
获取对应的格林威治时间
- 使用
-
time类型
- 实际是一个结构体
- 由Unix时间和地域信息组成
- 字符串打印:
2018-11-21 11:50:39.540473 +0800 CST m=+0.000311562
+8000 CST
指中国标准时间+0000 UTC
指格林威治时间
- 实际是一个结构体
-
unix时间
- 从格林威治时间1970年1月1日0时开始到现在的总秒数
time.Now().Unix()
// 总纳秒数
time.Now().UnixNano()
格式化时间
- time类型->字符串
- 只能用
2006-01-02 15:04:05
这个时间点作为格式化模板 - 格式化模板中的数字均有对应的含义,无论出现在哪个位置
- 例如
2006
代表年,06
代表年的后两位,03
代表月份
- 例如
- 只能用
str1 := time.Now().Format("2006-01-02 15:04:05")
str2 := time.Now().Format("2006年1月2日 15:04:05")
- 字符串->time类型
- 返回值是time类型
- 默认被解析的时间是UTC时间,而不是北京时间
- 我们应该总是使用
time.ParseInLocation
来解析时间,并给第三个参数传递time.Local
- 我们应该总是使用
timestamp1, err := time.Parse("2006-01-02 15:04:05", str1)
timestamp2, err := time.Parse("2006年1月2日 15:04:05", str2)
- 时间格式常量
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"