Go에서 Unix 타임스탬프 구문 분석
Go에서 Unix 타임스탬프 구문 분석은 간단해 보이지만 예상치 못한 오류가 발생할 수 있습니다. 이 문서에서는 일반적으로 발생하는 문제를 살펴보고 해결 방법을 제공합니다.
문제 설명
다음 코드 조각을 고려하세요.
package main import "fmt" import "time" func main() { tm, err := time.Parse("1136239445", "1405544146") if err != nil{ panic(err) } fmt.Println(tm) }
목표는 다음과 같습니다. Unix 타임스탬프 "1405544146"을 time.Time 객체로 변환합니다. 그러나 이 코드를 실행하면 오류가 발생합니다.
panic: parsing time "1405544146" as "1136239445": cannot parse "1405544146" as "06:20:23.9445"
솔루션
time.Parse 함수는 지정된 레이아웃을 사용하여 시간 문자열을 구문 분석하도록 설계되었습니다. 이 경우 레이아웃 "1136239445"는 Unix 타임스탬프 형식과 일치하지 않습니다. Unix 타임스탬프를 구문 분석하려면 정수 표현을 사용해야 합니다.
time.Parse를 사용하는 대신 strconv.ParseInt를 사용하여 문자열을 int64로 구문 분석한 다음 다음을 사용하여 타임스탬프를 생성할 수 있습니다. time.Unix:
package main import ( "fmt" "time" "strconv" ) func main() { i, err := strconv.ParseInt("1405544146", 10, 64) if err != nil { panic(err) } tm := time.Unix(i, 0) fmt.Println(tm) }
출력:
2014-07-16 20:55:46 +0000 UTC
strconv.ParseInt를 사용하면 레이아웃 관련 오류를 방지하고 Unix 타임스탬프를 성공적으로 구문 분석할 수 있습니다.
위 내용은 Go에서 Unix 타임스탬프를 어떻게 올바르게 구문 분석할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!