Go的time.Format(布局字符串)参考时间有什么意义?

sor*_*hjp 5 go

Go的time.Format(布局字符串)参考时间的意义是什么,即:

1月2日星期一15:04:05 -0700 MST 2006

这个特定时间不能完全随机选择,对吗?

资料来源:http://golang.org/pkg/time/#Time.Format

Sir*_*ius 14

日期的每个部分都用作索引:

Jan        -> 1      -> Month
2          -> 2      -> Day-of-Month
15 = 3PM   -> 15/3   -> hour
04         -> 4      -> minute
05         -> 5      -> second
2006       -> 6      -> year
-0700      -> 7      -> time-zone
Run Code Online (Sandbox Code Playgroud)

所以根据文件:

由于MST是GMT-0700,参考时间可以被认为是01/02 03:04:05 PM '06 -0700

这使得该time.Format方法易于解析在视觉上与期望结果相同的人类可读日期格式规范.

将此与例如strftime使用难以记忆的格式字符串的C函数进行比较,该字符串"%a, %d %b %y %T %z"表示符合RFC 822的日期格式.

Go等价物是:"Mon, 02 Jan 06 15:04 MST".

time.Format将令牌化这串并分析每一个字.

  • 周一被认为是星期一,因此这是工作日的名字
  • 逗号没有动过
  • 02被识别为整数值2,表示索引中的日期
  • Jan是1月份的已知英文缩写,因此用于月份部分
  • 06年是6年这一年的一部分
  • 15相当于3代表小时
  • ':'字符保持不变
  • 04是4,因此分钟
  • MST的解释很明显

有关确切算法,请参阅http://golang.org/src/time/format.go?s=12714:12756#L117.