20060102150405是什么意思?

J.D*_*one 4 go

我想获取当前时间值。我发现这个答案对我有用,但不知道为什么格式方法20060102150405有价值?不喜欢yyyyMMdd hhmmss

Fla*_*pes 8

Go 的时间格式与您在其他语言中所做的不同。Go 没有使用传统格式来打印日期,20060102150405而是使用参考日期,这看起来毫无意义但实际上是有原因的,因为它1 2 3 4 5 6在 Posixdate命令中:

Mon Jan 2 15:04:05 -0700 MST 2006
0   1   2  3  4  5              6
Run Code Online (Sandbox Code Playgroud)

时区7位于中间,因此最终格式类似于1 2 3 4 5 7 6.

如果您要从strftime格式转换此在线转换器非常方便。

有趣的历史参考:https : //github.com/golang/go/issues/444

time包还提供了方便的常量:

Mon Jan 2 15:04:05 -0700 MST 2006
0   1   2  3  4  5              6
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用它们:

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"
)
Run Code Online (Sandbox Code Playgroud)


小智 4

请参阅https://golang.org/pkg/time/#pkg-constants它是时间“01/02 03:04:05PM '06 -0700” 因为每个组件都有不同的编号(1、2、3 等) .),它可以根据数字确定您想要什么组件。