前言
Go语言的时间和日期学习笔记
引入模块
获取当前本地时间
1
| var now time.Time = time.Now()
|
从时间类型数据中获取年月日时分秒
年
月
获取月份数字
日
时
分
秒
格式化日期和时间
时间类型转换为字符串类型
通过格式化字符串格式化日期和时间
1 2 3 4 5 6 7 8 9
| fmt.Sprintf( "%d-%d-%d %d:%d:%d", now.Year(), int(now.Month()), now.Day(), now.Hour(), now.Minute(), now.Second(), )
|
1 2 3 4 5 6 7 8 9
| fmt.Sprintf( "%04d-%02d-%02d %02d:%02d:%02d", now.Year(), int(now.Month()), now.Day(), now.Hour(), now.Minute(), now.Second(), )
|
通过日期格式化方法格式化日期和时间
1
| now.Format("2006-01-02 15:04:05")
|
字符串类型转换为时间类型
<str>
:被转换的字符串
1
| now, err := time.Parse("2006-01-02 15:04:05", "<str>")
|
时间常量
1小时
1分钟
1秒
1毫秒
1微秒
1纳秒
Unix时间戳
Unix秒时间戳
Unix纳秒时间戳
时间类型计算
正数偏移量向后推移时间
1 2 3 4 5 6 7 8
| increment, _ := time.ParseDuration("1h") increment, _ := time.ParseDuration("1m") increment, _ := time.ParseDuration("1s") increment, _ := time.ParseDuration("1ms") increment, _ := time.ParseDuration("1us") increment, _ := time.ParseDuration("1ns")
var t time.Time = now.Add(increment)
|
负数偏移量向前推移时间
1 2 3 4 5 6 7 8
| increment, _ := time.ParseDuration("-1h") increment, _ := time.ParseDuration("-1m") increment, _ := time.ParseDuration("-1s") increment, _ := time.ParseDuration("-1ms") increment, _ := time.ParseDuration("-1us") increment, _ := time.ParseDuration("-1ns")
var t time.Time = now.Add(increment)
|
偏移量计算
1
| var t time.Time = now.Add(increment * 2)
|
获取两个时间的差值
1 2 3 4
| var t1 time.Time var t2 time.Time
var t time.Time = t1.Sub(t2)
|
时间类型比较
1 2 3 4
| var t1 time.Time var t2 time.Time
var result bool = t1.Before(t2)
|
指定时区
指定时区为东八区
1 2
| var zone = time.FixedZone("CST", 8*3600) time.Now().In(zone)
|
指定时区为上海时间
1 2
| var zone, _ = time.LoadLocation("Asia/Shanghai") time.Now().In(zone)
|
完成
参考文献
哔哩哔哩——尚硅谷
CSDN——zy_whynot
CSDN——CodyGuo
CSDN——Golang发烧友
亿速云——iii