Unix 타임스탬프를 구문 분석하는 방법
Go에서 Unix 타임스탬프를 구문 분석하는 것은 간단한 작업처럼 보일 수 있지만 예상치 못한 오류가 발생할 수 있습니다. time.Parse를 사용하여 타임스탬프를 구문 분석하려고 하면 레이아웃이 올바른 것처럼 보이더라도 범위를 벗어난 오류가 발생할 수 있습니다.
그 이유는 time.Parse가 Unix 타임스탬프를 처리하지 않기 때문입니다. 대신 strconv.ParseInt 함수를 사용하여 타임스탬프 문자열을 int64로 변환한 다음 time.Unix 함수를 사용하여 time.Time 객체를 생성해야 합니다.
예는 다음과 같습니다.
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 대신 strconv.Atoi가 사용되었습니다. 그러나 strconv.Atoi는 32비트 시스템에서 정수 오버플로를 일으킬 수 있습니다. 따라서 모든 경우를 안전하게 처리하기 위해서는 strconv.ParseInt를 사용하는 것이 좋습니다.
위 내용은 Go에서 Unix 타임스탬프를 안전하게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!