Go:
문자열에서 날짜 분석하기
방법:
Go는 time
패키지를 통해 날짜와 시간을 파싱하기 위한 강력한 지원을 제공합니다. 핵심은 Go의 참조 날짜 형식인 Mon Jan 2 15:04:05 MST 2006
을 이해하는 것입니다. 이것은 Go에게 들어오는 문자열을 어떻게 해석할지 알려줍니다. 시작하기 위한 간단한 예제를 살펴보겠습니다:
package main
import (
"fmt"
"time"
)
func main() {
// 예제 날짜 문자열
dateStr := "2023-04-12 14:45:00"
// 입력 날짜 문자열의 형식/레이아웃을 정의
// 이 레이아웃은 Go에게 연도, 다음으로 달,
// 그 다음 날, 시간, 분, 마지막으로 초를 기대하도록 알려줍니다
layout := "2006-01-02 15:04:05"
// 레이아웃에 따라 날짜 문자열을 파싱
parsedDate, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println("날짜 파싱 오류:", err)
return
}
// 파싱된 날짜 출력
fmt.Println("파싱된 날짜:", parsedDate)
}
이 코드를 실행하면 다음과 같은 결과를 얻습니다:
파싱된 날짜: 2023-04-12 14:45:00 +0000 UTC
참조 날짜의 값을 사용하여 입력 문자열의 형식을 지정하는 layout
문자열에 주목하세요. 입력 날짜의 형식과 일치하도록 layout
을 조정하세요.
심층 학습
Go의 날짜와 시간 파싱 설계는 특정 참조 날짜(Mon Jan 2 15:04:05 MST 2006
)를 사용하는 독특한 방식으로 이루어져 있습니다. 이 접근 방식은 년도에 대해 YYYY
와 같은 더 전통적인 형식 지정자를 사용하는 대신, 가독성과 사용 용이성 차원에서 더 예제 기반의 형식을 채택했습니다.
이것은 다른 언어에 익숙한 개발자들에게 처음에는 평소와 다를 수 있지만, 잠시의 조정 기간 후에 많은 이들이 더 직관적으로 여기게 됩니다. Go의 time
패키지가 직접 지원하지 않는 보다 복잡한 날짜 조작이나 형식이 필요한 애플리케이션의 경우, github.com/jinzhu/now
와 같은 서드파티 라이브러리가 추가 기능을 제공할 수 있습니다. 하지만, 대부분의 표준 애플리케이션에 대해, Go의 내장 기능은 견고하고, 효율적이며, Go의 단순함과 명확성 철학을 구현하고 있습니다.