2017-11-23 26 views
0

GoLangでは、日付をDD-MON-YYからYYYYMMDD形式に変換するにはどうすればよいですか?日付をDD-MON-YYからYYYYMMDDに変換する

My input is: 9-Nov-17 
Expected output is: 20171109 

しかし、私は下記行うとき:

t, err := time.Parse("20060102", "9-Nov-17") 

Golangがエラーを返した:

Error: parsing time "9-Nov-17" as "20060102": cannot parse "v-17" as "2006" 

助けてください。

+2

([golangで日付文字列を解析]の可能重複https://stackoverflow.com/questions/25845172/parsing-date-string- in-golang) – tgogos

+1

"9-Nov-17"は "20060102"という形式の日付ではありませんので、間違いがあります。 – Flimzy

答えて

5

あなたは、現在の形式で時間を解析し、Format機能

チェックを使用して期待形式にフォーマットする必要があり、ここで

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    // Parse a time value from a string in dd-Mon-yy format. 
    t, _ := time.Parse("2-Jan-06", "9-Nov-17") 
    //Format and print time in yyyymmdd format 
    fmt.Println(t.Format("20060102")) 
} 

プレーリンクの下の答え:ありgoplayground

2

gotimeを解析してフォーマットしている間にlayoutと呼ばれるものがあります。このレイアウトは常にMon Jan 2 15:04:05 -0700 MST 2006時間値に基づいて書式設定されます。あなたが入力2017 November 22を持っている場合の例としては、レイアウトが2006 January 02次のようになります。

// example 1   -- layout ---  --- input ----- 
t, err := time.Parse("2006 January 02", "2017 November 22") 
// example 2 
t, err := time.Parse("02-01-2006", "22-11-2017") 
+0

[参照時刻](https://golang.org/pkg/time/#pkg-constants)は、01/02 03:04:05 PM '06 -0700'と考えることもできます。これは覚えやすいです( – tgogos

+0

@tgogos: '01/02 15:04:05 PM '06 -0700'(24時間制)(15 = 12 + 03)。 – peterSO

関連する問題