제공된 Go 코드 조각에서 parseAndPrint 함수는 특정 시간을 구문 분석하여 지정된 시간대로 표시하는 것을 목표로 합니다. 그러나 선택한 시간대에 관계없이 항상 "[날짜] 05:00:00 0000 UTC"를 반환합니다. 이 문제를 해결하려면 시간대 구문 분석 및 변환에 대한 깊은 이해가 필수적입니다.
시간 값을 구문 분석할 때 일반적으로 현재 현지 시간대로 수행합니다. 그러나 시간대 약어는 구문 분석하는 위치에 따라 다릅니다. 다른 시간대의 시간을 구문 분석해야 하는 경우 적절한 시간 위치 또는 시간대 오프셋을 명시적으로 지정해야 합니다.
제공된 코드의 문제는 다음 줄에 있습니다. 테스트 시간은 time.Date를 사용하여 생성됩니다. 이 줄은 입력 문자열을 구문 분석할 때 시간대 매개변수를 제공하더라도 테스트 시간의 시간대를 시스템의 현지 시간대로 설정합니다. 따라서 테스트 시간을 UTC로 변환하면 항상 현지 시간대와 동일한 오프셋이 발생합니다.
이 문제를 해결하려면 제공된 시간대 정보를 사용하여 테스트 시간을 생성해야 합니다. 이는 time.LoadLocation을 사용하여 해당 시간 위치 객체를 로드한 다음 time.ParseInLocation을 사용하여 해당 위치의 입력 문자열을 구문 분석하여 수행할 수 있습니다. 결과 시간은 올바른 시간대 오프셋을 갖게 됩니다.
특정 요구 사항에 따라 시간대 및 변환 처리를 위한 대체 접근 방식을 고려할 수 있습니다.
위 내용은 My Go 시간대 변환이 항상 UTC를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!