Go语言time包通过“2006-01-02 15:04:05”布局格式实现时间格式化与解析,使用Format方法格式化时间,Parse解析字符串为时间,Sub计算时间差,Add进行时间加减,支持多种预定义格式和Duration单位操作,适用于日志记录、耗时统计等场景。

Go语言的time包提供了丰富的时间处理功能,包括时间的获取、格式化、解析以及时间差计算。在实际开发中,这些功能非常常用,比如记录日志时间、计算任务耗时、处理用户输入的时间等。
Go语言中格式化时间的方式和其他语言不同,它不使用%Y-%m-%d这样的占位符,而是使用一个固定的参考时间来定义格式:
参考时间: Mon Jan 2 15:04:05 MST 2006
这个时间的每个部分对应一个特定的数值:年(2006)、月(1)、日(2)、小时(15)、分钟(4)、秒(5)。只要按照这个顺序构造格式字符串即可。
立即学习“go语言免费学习笔记(深入)”;
示例:
time.Now().Format("2006-01-02 15:04:05")2025-04-05 14:23:10
time.Now().Format(time.RFC3339)
2025-04-05T14:23:10Z
time.Now().Format("2006/01/02")2025/04/05
常见预定义格式:
time.RFC3339
time.Kitchen
time.Stamp
将字符串转换为time.Time类型时,使用
time.Parse
示例:
str := "2025-04-05 10:30:00"
t, err := time.Parse("2006-01-02 15:04:05", str)
if err != nil {
log.Fatal(err)
}
fmt.Println(t)
注意:如果时区信息缺失,默认使用UTC。若需本地时区,可使用
time.ParseInLocation
黑色全屏自适应的H5模板 HTML5的设计目的是为了在移动设备上支持多媒体。新的语法特征被引进以支持这一点,如video、audio和canvas 标记。HTML5还引进了新的功能,可以真正改变用户与文档的交互方式,包括: 新的解析规则增强了灵活性 淘汰过时的或冗余的属性 一个HTML5文档到另一个文档间的拖放功能 多用途互联网邮件扩展(MIME)和协议处理程序注册 在SQL数据库中存
56
两个time.Time类型的时间可以通过
Sub
time.Duration
示例:
start := time.Now()
// 模拟操作
time.Sleep(2 * time.Second)
end := time.Now()
<p>duration := end.Sub(start)
fmt.Printf("耗时: %v 秒\n", duration.Seconds())
fmt.Printf("耗时: %v 毫秒\n", duration.Milliseconds())
Duration还支持多种单位提取:
d.Seconds()
d.Milliseconds()
d.Minutes()
d.Hours()
也可用于判断时间间隔是否超过某个阈值:
if duration > 5*time.Second {
fmt.Println("操作超时")
}
对时间进行加减使用
Add
示例:
t.Add(24 * time.Hour)
t.Add(-1 * time.Hour)
t.AddDate(0, 1, 0)
注意:
AddDate
基本上就这些。Go的时间处理设计看似奇怪,但一旦记住“2006-01-02 15:04:05”这个模板,使用起来非常直观。格式化、解析、差值计算都简洁高效,适合大多数服务端场景。
以上就是Golang的time库时间处理 格式化与计算时间差的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号