Go에서 날짜 문자열을 구문 분석하는 방법
Suraj Joshi
2023년12월11일
![Go에서 날짜 문자열을 구문 분석하는 방법](/img/Go/feature-image---How-to-Parse-date-string-in-Go.webp)
날짜 구문 분석은 프로그래밍 세계에서 발생하는 가장 일반적인 작업 중 하나입니다. Go는 날짜 / 시간 문자열 표현의 일부를 나타내는 코드를 사용하는 다른 프로그래밍 언어와 달리 표준 날짜를 사용합니다. Go의 구문 분석은time
패키지의 Parse 및 Format 함수를 사용하여 수행됩니다.
진행중인 날짜 및 시간 표현
Go에서 날짜를 구문 분석하기 위해layout
이라는 것을 사용합니다. Go에는 날짜를 구문 분석하는 동안 기억해야 할 표준 시간이 있습니다.
Mon Jan 2 15:04:05 MST 2006
2006 년 1 월 2 일 오후 3시 04 분 5 초 (UTC-0700)입니다.
Go에서 날짜 문자열 구문 분석
날짜 문자열을 구문 분석하기 위해이 레이아웃을time.Parse
함수에 전달합니다. 구문 분석 기능을 매우 흥미롭게 만드는 구문 분석 기능에서 문자를 사용하여 날짜를 지정하지 않고 실시간을 형식으로 사용합니다.
time.Parse
함수는 시간 형식 자리 표시자를 첫 번째 인수로 구성하고 시간을 두 번째 인수로 나타내는 실제 형식 문자열로 구성된 레이아웃을 사용합니다.
package main
import (
"fmt"
"time"
)
func main() {
timeT, _ := time.Parse("2006-01-02", "2020-04-14")
fmt.Println(timeT)
timeT, _ = time.Parse("06-01-02", "20-04-14")
fmt.Println(timeT)
timeT, _ = time.Parse("2006-Jan-02", "2020-Apr-14")
fmt.Println(timeT)
timeT, _ = time.Parse("2006-Jan-02 Monday 03:04:05", "2020-Apr-14 Tuesday 23:19:25")
fmt.Println(timeT)
timeT, _ = time.Parse("2006-Jan-02 Monday 03:04:05 PM MST -07:00", "2020-Apr-14 Tuesday 11:19:25 PM IST +05:30")
fmt.Println(timeT)
}
출력:
2020-04-14 00:00:00 +0000 UTC
2020-04-14 00:00:00 +0000 UTC
2020-04-14 00:00:00 +0000 UTC
0001-01-01 00:00:00 +0000 UTC
2020-04-14 23:19:25 +0530 IST
Go는 package에 미리 정의 된 시간 레이아웃 상수가 있습니다.
일정한 | 나열한 것 |
---|---|
ANSIC |
"Mon Jan _2 15:04:05 2006" |
UnixDate |
"Mon Jan _2 15:04:05 MST 2006" |
RubyDate |
"Mon Jan 02 15:04:05 -0700 2006" |
RFC822 |
"02 Jan 06 15:04 MST" |
RFC822Z |
"02 Jan 06 15:04 -0700" |
RFC850 |
"Monday, 02-Jan-06 15:04:05 MST" |
RFC1123 |
"Mon, 02 Jan 2006 15:04:05 MST" |
RFC1123Z |
"Mon, 02 Jan 2006 15:04:05 -0700" |
RFC3339 |
"2006-01-02T15:04:05Z07:00" |
RFC3339Nano |
"2006-01-02T15:04:05.999999999Z07:00" |
Stamp |
"3:04PM" |
StampMilli |
"Jan _2 15:04:05.000" |
StampMicro |
"Jan _2 15:04:05.000000" |
StampNano |
"Jan _2 15:04:05.000000000" |
레이아웃 문자열 대신 위와 같이 미리 정의 된 상수를 사용하여 날짜-시간을 구문 분석 할 수 있습니다.
package main
import (
"fmt"
"time"
)
func main() {
timeT, _ := time.Parse(time.RFC3339, "2020-04-15T13:45:26Z")
fmt.Println(timeT)
}
출력:
2020-04-15 13:45:26 +0000 UTC
우리가time.Time
타입을 가지고 있다면Format
함수를 사용하여 그것을string
으로 변환합니다.
package main
import (
"fmt"
"time"
)
func main() {
input := "2020-04-14"
layout := "2006-01-02"
t, _ := time.Parse(layout, input)
fmt.Println(t)
fmt.Println(t.Format("02-Jan-2006"))
}
출력:
2020-04-14 00:00:00 +0000 UTC
14-Apr-2020
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn