time.Parse 동작 이해
Go의 time 패키지에서 Parse 메서드를 사용하여 문자열을 time.Time 인스턴스로 변환할 때, 시간대를 고려하고 적절한 형식 문자열을 제공하는 것이 중요합니다. 다음 코드는 잘못된 시간대 처리로 인해 예상대로 문자열을 time.Time으로 변환하지 못합니다.
import ( "fmt" "time" ) func main() { const longForm = "2013-05-13T18:41:34.848Z" t, _ := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT") fmt.Println(t) }
이 코드는 예상된 값 대신 0001-01-01 00:00:00 0000 UTC를 인쇄합니다. 2013-05-13 01:41:34.848 0000 UTC.
해결책: 올바른 형식 문자열 지정
잘못된 형식 문자열로 인해 잘못된 동작이 발생합니다. longForm은 입력 문자열의 형식과 일치하도록 정의되어야 합니다.
const longForm = "2006-01-02 15:04:05 -0700"
이 형식 문자열은 입력 문자열의 형식에 해당합니다: 2013-05-13 18:41:34.848 -0700 PDT.
업데이트됨 코드:
import ( "fmt" "log" "time" ) func main() { const longForm = "2006-01-02 15:04:05 -0700" t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700 PDT") if err != nil { log.Fatal(err) } fmt.Println(t) }
올바른 형식 문자열을 사용하면 코드는 이제 예상 시간인 2013-05-13 01:41:34.848 0000 UTC를 출력합니다.
위 내용은 시간대가 관련되어 있는데 Go의 `time.Parse`가 문자열을 `time.Time` 인스턴스로 변환하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!