>백엔드 개발 >Golang >Go의 time.Parse 기능을 사용할 때 시간대를 올바르게 처리하는 방법은 무엇입니까?

Go의 time.Parse 기능을 사용할 때 시간대를 올바르게 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-27 13:59:10315검색

How to Correctly Handle Timezones When Using Go's time.Parse Function?

time.Parse 동작

Go에서 time.Parse 함수를 사용하여 문자열을 time.Time 값으로 변환하려고 할 때, 시간대를 올바르게 지정하지 않으면 예상치 못한 결과가 발생할 수 있습니다. 이 문서에서는 시간대 형식을 ISO 8601에 맞춰 이 문제에 대한 해결책을 살펴봅니다.

time.Parse 함수에는 입력 문자열의 형식을 정의하는 레이아웃 문자열이 필요합니다. 제공된 레이아웃 문자열 "2013-05-13T18:41:34.848Z"는 Golang에서 사용하는 참조 시간(UTC-0700 시간대에서 "Mon Jan 2 15:04:05 MST 2006")을 정확하게 나타내지 않습니다.

이 문제를 해결하려면 참조 시간과 일치하는 맞춤 레이아웃 문자열을 정의해야 합니다. 다음 레이아웃 문자열을 사용해야 합니다.

const longForm = "2006-01-02 15:04:05 -0700"

이 레이아웃 문자열은 참조 시간 형식과 일치합니다. 여기서:

  • 2006-01-02는 다음 형식의 날짜를 나타냅니다. YYYY-MM-DD
  • 15:04:05 형식으로 시간을 나타냅니다. HH:MM:SS
  • -0700은 UTC-0700의 시간대 오프셋을 나타냅니다

이 수정된 레이아웃 문자열을 사용하면 time.Parse 함수가 입력 문자열을 다음으로 성공적으로 변환할 수 있습니다. 시간.시간 값:

t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700")
if err != nil {
  log.Fatal(err)
}
fmt.Println(t)

이것은 올바르게 수행됩니다. 출력:

2013-05-13 01:41:34.848 +0000 UTC

time을 사용할 때 시간대 형식을 올바르게 처리하는 방법을 보여줍니다. Go에서 구문 분석하여 정확한 시간 변환을 보장합니다. 레이아웃 문자열을 기준 시간 및 시간대 사양에 맞춰 정렬하면 예상한 결과를 얻을 수 있습니다.

위 내용은 Go의 time.Parse 기능을 사용할 때 시간대를 올바르게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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