首页 > 后端开发 > Golang > 正文

Golang如何处理时间类型_Golang time包常见语法基础

P粉602998670
发布: 2025-12-17 15:38:38
原创
435人浏览过
Go的time包基于time.Time和time.Duration类型,通过固定参考时间"Mon Jan 2 15:04:05 MST 2006"定义layout进行时间解析与格式化,使用time.Now()、time.Date()、time.Parse()创建时间,Format()输出,Add()、Sub()、Before()、After()、Equal()完成计算比较,推荐显式指定时区如UTC或LoadLocation,并用Unix()等方法处理时间戳,避免精度丢失。

golang如何处理时间类型_golang time包常见语法基础

Go 的 time 包是处理时间最核心、最常用的工具,它不依赖系统时区配置,所有操作都基于 time.Time 类型和 time.Duration 类型,清晰、安全、不易出错。

创建和解析时间

Go 中时间必须显式创建,不能像字符串那样直接赋值。常用方式有:

  • time.Now():获取当前本地时间(带时区信息)
  • time.Date(year, month, day, hour, min, sec, nsec, loc):按字段构造时间,monthtime.Month 类型(如 time.January),loc 通常用 time.Localtime.UTC
  • time.Parse(layout, value):按固定 layout 解析字符串。注意:Go 的 layout 不是格式化符号(如 YYYY-MM-DD),而是用 参考时间 "Mon Jan 2 15:04:05 MST 2006" 的对应位置来定义——这是 Go 唯一且必须记住的模板

例如:time.Parse("2006-01-02 15:04:05", "2024-05-20 10:30:45") 可正确解析;而用 "YYYY-MM-DD" 会失败。

格式化输出时间

t.Format(layout)time.Time 转为字符串。layout 规则同上,仍基于参考时间:

立即学习go语言免费学习笔记(深入)”;

Listnr
Listnr

AI文本到语音生成器

Listnr 180
查看详情 Listnr
  • t.Format("2006-01-02")"2024-05-20"
  • t.Format("2006/01/02 15:04:05")"2024/05/20 10:30:45"
  • 预定义常量更省心:t.Format(time.RFC3339)"2024-05-20T10:30:45+08:00",适合 API 传输

时间计算与比较

时间运算通过 Duration 类型完成,它是纳秒级整数,支持加减:

  • t.Add(24 * time.Hour):加一天
  • t.Add(-7 * 24 * time.Hour):减一周
  • t.Sub(otherTime):返回 Duration,表示两时间间隔
  • 比较用 ==Before()After()Equal()(注意:带时区的时间比较才真正有意义)

⚠️ 避免用 t1.Unix() == t2.Unix() 判断相等——会丢失纳秒精度,应直接用 t1.Equal(t2)

时区与时间戳处理

Go 默认使用本地时区,但推荐显式指定以避免歧义:

  • time.Now().In(time.UTC):转为 UTC 时间
  • time.Now().In(loc):转到指定时区,可用 time.LoadLocation("Asia/Shanghai") 加载标准时区
  • Unix 时间戳转换:time.Unix(sec, nsec) 构造时间;t.Unix()t.UnixMilli() 获取对应整数
  • 数据库或 JSON 场景中,常配合 json.Marshal 使用 time.Time 的默认 RFC3339 格式,或自定义 MarshalJSON 方法统一为毫秒时间戳

基本上就这些。time 包设计克制,没有“昨天”“下个月”这类模糊方法,靠组合基础操作实现逻辑,看似多写几行,实则稳定可控。

以上就是Golang如何处理时间类型_Golang time包常见语法基础的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号