go标准包time的格式化format

go语言有一个特殊的日期格式化功能,许多人都说他很坑,为什么呢?
因为在格式化的时候,你只能使用固定的一个时间来格式化,即:
北美山地时间(MST:Mountain Standard Time)2006年1月2日下午(PM)3点4分5秒这个时间。
许多人都说,这是Golang的自恋行为,因为传言说这就是Go语言诞生的时间,但是究其根源,其实并不是这样。
如果你仔细观察就会发现,其实这个时间排列一下就是:
1,2,3,4,5,6,7
依次对应:(括号内的形式均可,PM大小写均可,月份只能首字母大写,顺序不限,但他们之间必须要有空格、"-"、"|"等形式的分割符)

时间支持的形式对应数字
一月(Jan)(January)(1)(01)1
二日(2)(02)2
下午三点(15)(03 PM)(3 PM)(3)(3 pm)(03 pm)3
四分(4)(04)4
五秒(5)(05)5
六年(2006)(006)(06)6
七时区(MST)(mst)(-07)(-070)(-0700)(-07:00)7

除此之外,还可以再加上一个999来表示毫秒级别的时间
例子:

func main() {
	now := time.Now()
	nowStr := now.Format("01/02 03:04:05PM '06 -0700")
	fmt.Println(nowStr)
	nowStr = now.Format("2006-January-02 03:04:05.999 pm")
	fmt.Println(nowStr)
	nowStr = now.Format("2006-Jan-02 03:04:05.999 pm")
	fmt.Println(nowStr)
	nowStr = now.Format("06-Jan-02 03:04:05.999 pm")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm MST")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm -07")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm -070")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm mst")
	fmt.Println(nowStr)
	nowStr = now.Format("006-Jan-02 03:04:05.999 pm -07:00")
	fmt.Println(nowStr)
}

控制台输出:

04/27 04:29:36PM '20 +0800
2020-April-27 04:29:36.29 pm
2020-Apr-27 04:29:36.29 pm
20-Apr-27 04:29:36.29 pm
020-Apr-27 04:29:36.29 pm
020-Apr-27 04:29:36.29 pm CST
020-Apr-27 04:29:36.29 pm +08
020-Apr-27 04:29:36.29 pm +080
020-Apr-27 04:29:36.29 pm mst
020-Apr-27 04:29:36.29 pm +08:00

除此之外还有许多其他写法,详情请参阅Go官网https://go-zh.org/pkg/time/

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值