Go的时间格式化为什么是2006-01-02 15:04:05?


一、背景

在使用Java做时间格式化时,我们一般会用yyyy-MM-dd HH:mm:ss
来表示某年某月某日某小时某分钟某秒的时间,但是到了Goland这边却是用2006-01-02 15:04:05,为什么呢?

所以我就有几个疑问:

  • 为什么不用传统的yyyy-MM-dd HH:mm:ss格式而用固定难记的2006-01-02 15:04:05
  • 为什么不能用其他的时间格式如2010-02-03 20:10:30

二、原因分析

1、为什么不用传统的yyyy-MM-dd HH:mm:ss格式而用固定难记的2006-01-02 15:04:05

2006-01-02 15:04:05虽然固定难记,但是可以实现比较复杂的时间格式化。比如2024-02-14 02:14:00想输出24-2-14 2:14:00
,只需要修改时间格式为06-1-2 3:04:05,而传统的yyyy-MM-dd HH:mm:ss则无法实现。

2、为什么不能用其他的时间格式如2010-02-03 20:10:30

2006-01-02 15:04:05的设计其实也没太多特殊含义,只是为了方便记忆。因为按照ANSIC标准的日期格式,是按照月、日、时、分、秒、年、MST时区,所以我们仔细看的话会发现2006-01-02 15:04:05刚好对应1、2、3、4、5、6、7。

Jan 2 15:04:05 2006 MST
1   2  3  4  5    6  -7

三、一些常见的场景

功能 日期格式 输出(以2024-02-22 19:45:30举例)
输出当前时间 2006-01-02 15:04:05 2024-02-22 19:45:30
输出当前时间(12小时制) 2006-01-02 03:04:05 2024-02-22 07:45:30
输出年月日(逗号间隔) 2006.01.02 2024.02.22

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录