最近用Go语言写程序用到了time包,需要将时间以2012-01-27 22:02:02
的格式输出,但是Time对象(准确来说不是对象,而是struct)的Format方法并没有提供默认满足要求的layout string,需要自己来填写。
以前写Python时,对时间的格式化是采用"%Y-%m-%d %H:%M:%S"
这样的layout string:
datetime.now().strftime("%Y-%m-%d %H:%M:%S")
而Go语言的方式则略显奇葩,采用的是"2006-01-02 15:04:05"
这样的layout string:
time.Now().Format("2006-01-02 15:04:05")
从源码(http://golang.org/src/pkg/time/format.go [line 59])可以看出,2006
代表年份,01
代表月份...于是我一直很好奇,2006年1月2日这一天的15点04分05秒到底发生了什么?
Leave a Comment