2017-07-18 52 views

回答

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 

的時區是7但坐在中間,所以最後格式類似於1 2 3 4 5 7 6

This online converter很方便,如果您從strftime格式轉換。

有趣的歷史參考: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)) 
0

20060102150405是日期和時間格式2006/01/02 15:04:05

包主

進口( 「FMT」 「時間」 )

FUNC主(){

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