20060102150405是什么意思?

时间:2017-07-18 08:01:26

标签: go

我想获得当前的时间价值。我发现this回答对我有用,但不知道为什么格式方法取值20060102150405?与yyyyMMdd hhmmss不一样。

3 个答案:

答案 0 :(得分:3)

Go的格式独特,与您在其他语言中的格式不同。 Go没有使用传统格式来打印日期,而是使用参考日期20060102150405,它似乎毫无意义但实际上有原因,因为它在Posix 1 2 3 4 5 6命令中date

Mon Jan 2 15:04:05 -0700 MST 2006
0   1   2  3  4  5              6

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

如果您要从strftime格式转换,

This online converter会很方便。

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

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

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" )

您可以像这样使用它们:

t := time.Now()
fmt.Println(t.Format(time.ANSIC))

答案 1 :(得分:2)

请参阅https://golang.org/pkg/time/#pkg-constants现在是时间“01/02 03:04:05 PM '06 -0700”因为每个组件都有不同的编号(1,2,3等),所以可以从数字你想要的组件。

答案 2 :(得分:0)

20060102150405是日期和时间格式2006/01/02 15:04:05

package main

导入(     “FMT”     “时间”     )

func main(){

date1 := time.Now().Format("2006/01/02 15:04")
fmt.Println(date1)//2009/11/10 23:00

date2 := time.Now().Format("20060102150405")
fmt.Println(date2)//20091110230000

}

https://play.golang.org/p/kIfNRQ50JP