Go语言用“Mon Jan 2 15:04:05 MST 2006”作参考时间,通过匹配其格式字符串实现时间格式化,如“2006-01-02 15:04:05”输出标准时间,支持自定义布局和预定义常量如time.RFC3339。

在Go语言中,time包使用一种独特的方式来格式化时间和日期,它不采用像其他语言中的
yyyy-MM-dd HH:mm:ss这样的格式字符串,而是基于一个固定的参考时间来定义格式模板。
参考时间与格式化模板
Go语言的time包使用如下这个具体的时间作为“模板时间”:
Mon Jan 2 15:04:05 MST 2006这个时间在数值上是 13:04:05(UTC-7)于2006年1月2日,星期一,并且其各个部分恰好是 Unix 时间戳 1136239445 的可读形式。Go 用这个时间作为“格式占位符”——你只要按照这个时间的格式来写字符串,就能正确格式化输出。
例如:
立即学习“go语言免费学习笔记(深入)”;
2006-01-02 15:04:05
→ 输出形如2024-04-05 14:30:22
2/1/2006 3:04:05 PM
→ 输出形如4/5/2024 2:30:22 PM
2006-01-02
→ 仅输出日期部分15:04:05
→ 仅输出时间部分
使用 Format 方法进行格式化
调用
time.Time类型的
Format(layout string)方法即可格式化时间: t := time.Now()
formatted := t.Format("2006-01-02 15:04:05")
fmt.Println(formatted) // 输出:2024-04-05 14:30:22
你可以自定义任意组合,只要符合参考时间中各字段的表示方式即可。
”扩展PHP“说起来容易做起来难。PHP已经进化成一个日趋成熟的源码包几十兆大小的工具。要骇客如此复杂的一个系统,不得不学习和思考。构建本章内容时,我们最终选择了“在实战中学习”的方式。这不是最科学也不是最专业的方式,但是此方式最有趣,也得出了最好的最终结果。下面的部分,你将先快速的学习到,如何获得最基本的扩展,且这些扩展立即就可运行。然后你将学习到 Zend 的高级 API 功能,这种方式将不得
常用预定义格式
Go 提供了一些预定义的常量,可以直接使用:
time.RFC3339
→2006-01-02T15:04:05Z07:00
time.Stamp
→Jan _2 15:04:05
time.Kitchen
→3:04PM
time.ANSIC
→Mon Jan _2 15:04:05 2006
示例:
fmt.Println(t.Format(time.RFC3339)) // 2024-04-05T14:30:22+08:00注意事项
Go 的格式化方式容易混淆,因为不是传统占位符。记住这个口诀帮助记忆:
“1月2日下午3点4分5秒,2006年”对应的就是:
01/02 15:04:05 2006。只要照这个顺序写,就能正确格式化。
基本上就这些,不复杂但容易忽略细节。









