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的参考时间模板。
网奇.NET网络商城系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net的主机空间即可使用。系统特色功能:1、同时支持Access和SqlServer数据库;2、支持多语言、多模板3、可定制缺货处理功能4、支持附件销售功能5、支持会员组批发功能6、提供页面设计API函数7、支持预付款功能8、配送价格分地区按数学公式计算9、商品支持多类别,可
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) // 返回1h0m0s fmt.Println(duration.Hours()) // 1 fmt.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的时间处理设计独特但一旦理解参考时间的逻辑,使用起来非常清晰和高效。









