这个其实是凑出来的时间,题主这样写的确不容易记忆,你可以按照format.go源代码中的写法来记忆:
01/02 03:04:05PM '06 -0700
一月二号下午3点4分5秒,06年,时区是-7, 这个还是不太好记忆,因为不符合中国人的日期顺序习惯,我们喜欢把年放前面对不对?
但这东西不是记忆的,因为time/format.go中已经帮你预设了不少常用的format常量
const (
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)
尽量用这些常量来取代hardcode一个format string
如果特殊情况你实在需要自己拼装,你还可以参考同一个文件里还有另外一个常量表
const (
_ = iota
stdLongMonth = iota + stdNeedDate // "January"
stdMonth // "Jan"
stdNumMonth // "1"
stdZeroMonth // "01"
stdLongWeekDay // "Monday"
stdWeekDay // "Mon"
stdDay // "2"
stdUnderDay // "_2"
stdZeroDay // "02"
stdUnderYearDay // "__2"
stdZeroYearDay // "002"
stdHour = iota + stdNeedClock // "15"
stdHour12 // "3"
stdZeroHour12 // "03"
stdMinute // "4"
stdZeroMinute // "04"
...
这个常量表提供了各种基本元素,基本的写法都有。
谈不上反人类,只能说和别人不一样。大多数其他语言还是用yyyymmdd这样的pattern来描述format而不是用12345这样具体的值。我感觉这种yymmdd的写法你也要查查文档,要不大小写之类的也不容易一次写对。有好有坏吧,癞痢头儿子自家的好,估计原作者和某些狂热者们还觉得这个设计挺别致的吧。