考虑到时间变量,我想打印年,月和日。 从文档中,似乎可以使用任何布局。例如,我看不出布局2006-01-02,2006-10-10,1999-02-02之间的区别。
但是,只有布局2006-01-02会返回我期望的内容。 我在哪里可以找到关于' 2006',' 01',' 02'的含义的文档。在布局?
我在这里玩了不同的布局:go playground: testing layouts
答案 0 :(得分:6)
Mon Jan 2 15:04:05 -0700 MST 2006
是参考时间,这意味着布局需要使用该确切日期。有more information here,但基本上通过为日期时间的每个部分使用唯一值,它能够分辨出每个部分(年,月等)的实际位置。
答案 1 :(得分:4)
跟进杰克的信息,详见examples:
// The layout string used by the Parse function and Format method
// shows by example how the reference time should be represented.
// We stress that one must show how the reference time is formatted,
// not a time of the user's choosing. Thus each layout string is a
// representation of the time stamp,
// Jan 2 15:04:05 2006 MST
// An easy way to remember this value is that it holds, when presented
// in this order, the values (lined up with the elements above):
// 1 2 3 4 5 6 -7
此参考时间允许我们澄清是否应该将01-02-17解析为2017年1月2日或1月1日
答案 2 :(得分:1)
Go的时间格式独特,与其他语言的格式不同。 Go使用的参考日期20060102150405
似乎没有意义,但实际上有一定的原因,而不是使用常规格式来打印日期,因为Posix date命令中的参考日期1 2 3 4 5 6
:
Mon Jan 2 15:04:05 -0700 MST 2006
0 1 2 3 4 5 6
在Go中,布局字符串为:
Jan 2 15:04:05 2006 MST
1 2 3 4 5 6 -7
选中this