2017-11-30 24 views
-1

Tomcatのログファイルのタイムスタンプをgoで解析しようとしていますが、処理が進まない。Tomcatのログファイルのタイムスタンプを解析します。

package main 

import (
    "time" 
    "fmt" 
) 

func main() { 
    date := "26/Nov/2017:19:23:15 +0000" 
    fmt.Println(time.Parse(time.RFC822Z, date)) 
} 

エラーメッセージは次のとおりです。

0001-01-01 00:00:00 +0000 UTC parsing time "26/Nov/2017:19:23:15 +0000" as "02 Jan 06 15:04 -0700": cannot parse "/Nov/2017:19:23:15 +0000" as " " 

誰でもお手伝いできますか?

+2

あなたがhave'date:= "26/11月/ 2017:19:23:15 +0000" 'とレイアウト' RFC822 =「02 1月6日午前15時04分MST "。それはどうすれば可能ですか? – peterSO

+0

@peterSOそれを正しく解析する方法は? – buddyspencer

+0

「パッケージ時間」(https://golang.org/pkg/time/)の「定数」を参照してください。「独自の書式を定義するには、参照時刻がどのように書式設定されているかを書き留めてください。 – peterSO

答えて

1

Goには、時間の書式設定に時間がかかる独自の方法があります。テンプレートは、次の日付に基づいている必要があります(これは、1,2,3,4,5,6,7のようにゆるやかに記憶されます)。

2006年1月2日3:04:05 PM - 0700

カスタムフォーマットを作成するには、上記の日付のフォーマット方法に一致する文字列を作成します。あなたのケースでは02/Jan/2006:15:04:05 -0700

func main() { 
    date := "26/Nov/2017:19:23:15 +0000" 
    parsedTime, _ := time.Parse("02/Jan/2006:15:04:05 -0700", date) 
    fmt.Println(parsedTime) 
} 
// Outputs: 2017-11-26 19:23:15 +0000 UTC 

https://play.golang.org/p/6nene8tnZL

+0

ありがとう – buddyspencer

関連する問題