> 백엔드 개발 > Golang > My Go 시간대 구문 분석이 항상 UTC를 반환하는 이유는 무엇입니까?

My Go 시간대 구문 분석이 항상 UTC를 반환하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-01 01:23:14
원래의
730명이 탐색했습니다.

Why Does My Go Timezone Parsing Always Return UTC?

Go에서 시간대 구문 분석 이해

Go에서 시간대를 처리하면 때때로 예상치 못한 동작이 발생할 수 있습니다. 사용자 정의 시간 형식을 사용하여 시간대를 구문 분석하는 동안 발생하는 일반적인 문제를 자세히 살펴보겠습니다.

문제: 입력에 관계없이 일관된 시간대 출력

제공된 코드 조각은 표시된 시간을 구문 분석하는 것을 목표로 하는parseAndPrint 함수를 정의합니다. 특정 시간대 내에서 "05:00:00"으로 결과를 UTC로 인쇄합니다. 그러나 결과 시간은 지정된 시간대에 관계없이 변경되지 않고 매번 "[날짜] 05:00:00 0000 UTC"가 표시됩니다.

문제 이해

근본 원인은 parseAndPrint 함수 내에서 time.Parse를 사용하여 시간을 구문 분석하는 방법입니다. 현재 시간은 time.Now()로 가져와서 time.Parse에 인수로 전달되며, 이는 지정된 시간대 약어에 따라 입력 문자열을 해석합니다.

단, 구문 분석은 시스템의 현지 시간대로 수행됩니다. , 원하는 시간대가 지정되지 않았습니다. 이러한 불일치로 인해 의도한 시간대와 관계없이 잘못된 구문 분석과 일관된 UTC 출력이 발생합니다.

해결책: 올바른 시간대 처리

시간대를 적절하게 처리하려면 문자열 표현을 구문 분석하는 것이 중요합니다. 올바른 time.Location 인스턴스를 사용하여 지정된 시간대의 시간입니다. 여기에는 다음 단계가 포함됩니다.

  • time.LoadLocation을 사용하여 시간대 데이터베이스에서 원하는 시간대를 로드합니다.
  • time.ParseInLocation을 사용하여 해당 시간대에 대한 time.Time 개체를 만듭니다.
  • 다음을 사용하여 시간을 UTC로 변환합니다. test.UTC().

이 접근 방식을 통합하면 코드는 시간대 간의 시간 차이를 고려하여 원하는 시간대에서 제공된 시간을 올바르게 구문 분석하고 인쇄합니다.

위 내용은 My Go 시간대 구문 분석이 항상 UTC를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿