2017-11-30 8 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분 ". 그게 어떻게 가능할 수 있니? – peterSO

+0

@peterSO 어떤 아이디어를 제대로 파싱하는 방법? – buddyspencer

+0

지시 사항 : 상수 아래의 [패키지 시간] (https://golang.org/pkg/time/)을 참조하십시오. "자신의 형식을 정의하려면 참조 시간이 어떻게 표시 될지 적어 두십시오." – peterSO

답변

1

이동에는 시간을 형식화하는 고유 한 방식이 있습니다. 템플릿은 다음 날짜를 기반으로해야합니다 (느슨하게 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