>백엔드 개발 >Golang >Go의 `time.Parse` 함수에서 Tar와 같은 타임스탬프를 올바르게 구문 분석하는 방법은 무엇입니까?

Go의 `time.Parse` 함수에서 Tar와 같은 타임스탬프를 올바르게 구문 분석하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-09 07:32:06714검색

How to Correctly Parse Tar-like Timestamps in Go's `time.Parse` Function?

Go의 날짜 구문 분석

Go의 타임스탬프 구문 분석은 time.Parse의 복잡한 API를 사용하면 어려운 작업이 될 수 있습니다. '2011-01-19 22:15'와 같이 tar에서 생성된 것과 유사한 타임스탬프를 구문 분석하려고 할 때 발생하는 일반적인 문제를 살펴보겠습니다.

파싱 문제

다음 코드 조각은 "parsing time "2011-01-19 오류로 인해 실패합니다. 22:15": 월이 범위를 벗어남":

package main

import (
    "fmt"
    "time"
)

func main() {
    var time, error = time.Parse("2011-01-19 22:15", "2011-01-19 22:15")
    if error != nil {
        fmt.Println(error.String())
        return
    }
    fmt.Println(time)
}

오류 이해

오류 메시지는 time.Parse에 제공된 형식 문자열이 예상됨을 나타냅니다. 월 값은 1에서 12 사이여야 하며 제공된 타임스탬프에는 첫 번째인 1월(01로 표시)이 포함됩니다. 월.

문제 해결

이 문제를 해결하려면 타임스탬프를 올바르게 해석하도록 형식 문자열을 사용자 정의해야 합니다. Go 시간 패키지의 문서를 참조하면 다음 지침을 찾을 수 있습니다.

"레이아웃에 사용되는 표준 시간은 다음과 같습니다.

Mon Jan 2 15:04:05 MST 2006(MST GMT-0700)

자신만의 형식을 정의하려면 표준 시간 형식을 적어보세요. way."

다음과 같이 형식 문자열을 수정하면 다음과 같습니다.

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t)
}

이 코드는 "2011-01-19 22:15:00 0000 UTC"를 출력합니다.

문서에 제공된 지침에 따라 형식 문자열을 사용자 정의하여 원하는 형식으로 타임스탬프를 성공적으로 구문 분석할 수 있었습니다. 형식입니다.

위 내용은 Go의 `time.Parse` 함수에서 Tar와 같은 타임스탬프를 올바르게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.