2017-06-02 3 views
-2

たとえば「1996年4月20日」から1996-04-20に変換する必要があります。私は次のコードを試しましたが、私は逆に何とかしていると感じています。「Month dd、yyyy」をGoのyyyy-mm-ddに変換するにはどうすればよいですか?

func main() { 
    value := "April 20, 1996" 
    layout := "January 1, 1996" 
    t, _ := time.Parse(layout, value) 
    fmt.Println(t) 
    mydate, _ := time.Parse("2006-01-02", "2016-07-08") 
    fmt.Println("time:", mydate.Format("April 20, 1996 (MST)")) 
} 
+2

[ドキュメント](https://golang.org/pkg/time/#pkg-constants)に記載されているように、またその回答に記載されているとおり、参照時間は「01/02 03:04:05 PM '06」です-0700'となる。あなたはパターンを見ましたか? 「01」から「07」までうまく整理されています。付加的な「ルール」は、「24時間スタイル」で時間を表現する場合、「03」を「03 PM」の別の表現である「15」に置き換える。 – putu

答えて

2

入力レイアウトを使用して時間を解析し、出力レイアウトを使用して印刷するだけで済みます。レイアウトは、基準時間(Mon Jan 2 15:04:05 MST 2006)が与えられた形式でどのように見えるかを常に指定します。私はこれがあなたの望むものだと思う:

func main() { 
    value := "April 20, 1996" 
    layout := "January 2, 2006" 
    t, _ := time.Parse(layout, value) 
    fmt.Println(t) 
    fmt.Println("time:", t.Format("2006-01-02")) 
} 

詳細については、https://golang.org/pkg/time/を参照してください。

+0

ありがとう!今私はそれを得る。結果:https://play.golang.org/p/pdJS4Hout7 – Kaah

関連する問題