Go语言时间处理基于固定参考时间Mon Jan 2 15:04:05 MST 2006进行格式化和解析,使用Format方法按模板格式化时间,Parse和ParseInLocation用于字符串解析,支持时区处理;通过Add、Sub进行时间加减计算,After、Before、Equal实现时间比较,Duration提供时间差的数值转换,建议统一使用time.Location处理本地时区以避免混乱。

Go语言的
time
库提供了丰富的时间处理功能,包括时间的创建、格式化、解析、比较和计算。掌握这些操作对开发中处理日期时间非常关键。下面介绍常用的时间格式化方法和时间计算技巧。
时间格式化:使用固定的参考时间
Go语言中格式化时间不使用
yyyy-MM-dd HH:mm:ss
这类占位符,而是使用一个固定的参考时间:
Mon Jan 2 15:04:05 MST 2006
这个时间的每一位数字都是递增的:1月2日3点4分5秒6年。只要按照这个模板写格式字符串即可。
常见格式化示例:
立即学习“go语言免费学习笔记(深入)”;
2006-01-02 15:04:05
→ 标准日期时间
2006-01-02
→ 仅日期
15:04:05
→ 仅时间
2006/01/02
→ 斜杠分隔
Jan 2, 2006
→ 英文月份缩写
代码示例:
now := time.Now()formatted := now.Format("2006-01-02 15:04:05")fmt.Println(formatted) // 输出:2024-04-05 14:23:10
时间解析:从字符串转为time.Time
使用
time.Parse
可以将字符串按指定格式转为
time.Time
类型。
注意:格式字符串依然使用Go的参考时间模板。
str := "2024-04-05 10:00:00"t, err := time.Parse("2006-01-02 15:04:05", str)if err != nil { log.Fatal(err)}fmt.Println(t)
如果字符串包含时区信息,建议使用
time.ParseInLocation
指定位置:
loc, _ := time.LoadLocation("Asia/Shanghai")t, _ := time.ParseInLocation("2006-01-02 15:04:05", str, loc)
时间计算:Add、Sub与Until
Go的时间计算非常直观,支持加减时间间隔和两个时间之间的差值。
1. 加减时间(Add/Sub)
Add(time.Duration)
:加上一段时间
Sub(time.Time)
:减去另一个时间,返回
Duration
now := time.Now()// 1小时后later := now.Add(time.Hour)
// 30分钟后after30 := now.Add(30 * time.Minute)
// 2天前before2days := now.Add(-48 * time.Hour)
// 计算两个时间的间隔duration := later.Sub(now) // 返回1h0m0sfmt.Println(duration.Hours()) // 1fmt.Println(duration.Minutes()) // 60
2. 时间比较
After()
:是否在某时间之后
Before()
:是否在某时间之前
Equal()
:是否相等
if now.Before(later) { fmt.Println("当前时间在之后时间之前")}
实用技巧与注意事项
处理时间时有几个容易忽略的点:
Go的格式化字符串必须严格匹配参考时间的数字顺序解析时间时若未指定时区,默认使用UTC建议统一使用
time.Location
处理本地时间,避免时区混乱时间计算中
Duration
支持
Hours()
、
Minutes()
、
Seconds()
等方法获取浮点值
获取当前东八区时间:
shanghai, _ := time.LoadLocation("Asia/Shanghai")now := time.Now().In(shanghai)
基本上就这些。Go的时间处理设计独特但一旦理解参考时间的逻辑,使用起来非常清晰和高效。
以上就是Golang time库时间处理 格式化与时间计算的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1400981.html
微信扫一扫
支付宝扫一扫