2017-07-18 12 views
-1

私は現在の時間値を取得したいと思います。私はthis私のために働く答えが見つかりましたが、なぜフォーマット方法は20060102150405値を取るか分からない?好きではないyyyyMMdd hhmmss20060102150405の意味は?

+0

'2006-01 -02 15:04:05'? – axiac

答えて

1

あなたが他の言語で行うこととは違った独自の時間フォーマットです。代わりに、日付を印刷するための従来のフォーマットを有していると、それはPOSIXのdateコマンドで1 2 3 4 5 6だとして、Goが、無意味に思えるが、実際には理由がある基準日20060102150405を使用しています。

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