Go에서 시간대를 처리하면 때때로 예상치 못한 동작이 발생할 수 있습니다. 사용자 정의 시간 형식을 사용하여 시간대를 구문 분석하는 동안 발생하는 일반적인 문제를 자세히 살펴보겠습니다.
제공된 코드 조각은 표시된 시간을 구문 분석하는 것을 목표로 하는parseAndPrint 함수를 정의합니다. 특정 시간대 내에서 "05:00:00"으로 결과를 UTC로 인쇄합니다. 그러나 결과 시간은 지정된 시간대에 관계없이 변경되지 않고 매번 "[날짜] 05:00:00 0000 UTC"가 표시됩니다.
근본 원인은 parseAndPrint 함수 내에서 time.Parse를 사용하여 시간을 구문 분석하는 방법입니다. 현재 시간은 time.Now()로 가져와서 time.Parse에 인수로 전달되며, 이는 지정된 시간대 약어에 따라 입력 문자열을 해석합니다.
단, 구문 분석은 시스템의 현지 시간대로 수행됩니다. , 원하는 시간대가 지정되지 않았습니다. 이러한 불일치로 인해 의도한 시간대와 관계없이 잘못된 구문 분석과 일관된 UTC 출력이 발생합니다.
시간대를 적절하게 처리하려면 문자열 표현을 구문 분석하는 것이 중요합니다. 올바른 time.Location 인스턴스를 사용하여 지정된 시간대의 시간입니다. 여기에는 다음 단계가 포함됩니다.
이 접근 방식을 통합하면 코드는 시간대 간의 시간 차이를 고려하여 원하는 시간대에서 제공된 시간을 올바르게 구문 분석하고 인쇄합니다.
위 내용은 My Go 시간대 구문 분석이 항상 UTC를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!