소개
이 랩은 Golang 에서의 시간 형식 지정 및 파싱에 중점을 둡니다. Golang 은 시간 형식 지정 및 파싱을 위한 패턴 기반 레이아웃을 제공합니다.
시간 형식 지정 및 파싱
문제는 제공된 레이아웃을 사용하여 Golang 에서 시간을 형식 지정하고 파싱하는 것입니다.
time패키지를 사용하여 시간을 형식 지정하고 파싱합니다.time.RFC3339레이아웃을 사용하여 시간을 형식 지정하고 파싱합니다.Mon Jan 2 15:04:05 MST 2006참조 시간을 사용하여 주어진 시간/문자열을 형식 지정/파싱할 패턴을 보여줍니다.Parse함수를 사용하여 시간을 파싱합니다.Format함수를 사용하여 시간을 형식 지정합니다.fmt.Println함수를 사용하여 형식 지정된 시간을 출력합니다.fmt.Printf함수를 사용하여 추출된 구성 요소와 함께 형식 지정된 시간을 출력합니다.
$ go run time-formatting-parsing.go
2014-04-15T18:00:15-07:00
2012-11-01 22:08:41 +0000 +0000
6:00PM
Tue Apr 15 18:00:15 2014
2014-04-15T18:00:15.161182-07:00
0000-01-01 20:41:00 +0000 UTC
2014-04-15T18:00:15-00:00
parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": ...
전체 코드는 다음과 같습니다.
// Go 는 패턴 기반 레이아웃을 통해 시간 형식 지정 및 파싱을 지원합니다.
package main
import (
"fmt"
"time"
)
func main() {
p := fmt.Println
// 다음은 RFC3339 에 따라 시간을 형식 지정하는 기본 예제입니다.
// 해당 레이아웃 상수 사용.
t := time.Now()
p(t.Format(time.RFC3339))
// 시간 파싱은 `Format` 과 동일한 레이아웃 값을 사용합니다.
t1, e := time.Parse(
time.RFC3339,
"2012-11-01T22:08:41+00:00")
p(t1)
// `Format` 및 `Parse` 는 예제 기반 레이아웃을 사용합니다. 일반적으로
// 이러한 레이아웃에 대해 `time` 의 상수를 사용하지만
// 사용자 지정 레이아웃을 제공할 수도 있습니다. 레이아웃은
// 참조 시간 `Mon Jan 2 15:04:05 MST 2006`을 사용하여
// 주어진 시간/문자열을 형식 지정/파싱할 패턴을 보여주어야 합니다.
// 예제 시간은 정확히 표시된 대로여야 합니다: 연도 2006,
// 시간 15, 요일 월요일 등.
p(t.Format("3:04PM"))
p(t.Format("Mon Jan _2 15:04:05 2006"))
p(t.Format("2006-01-02T15:04:05.999999-07:00"))
form := "3 04 PM"
t2, e := time.Parse(form, "8 41 PM")
p(t2)
// 순수하게 숫자 표현의 경우 추출된
// 시간 값의 구성 요소와 함께 표준 문자열 형식을 사용할 수도 있습니다.
fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00\n",
t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
// `Parse` 는 잘못된 입력에 대해 오류를 반환합니다.
// 파싱 문제를 설명합니다.
ansic := "Mon Jan _2 15:04:05 2006"
_, e = time.Parse(ansic, "8:41PM")
p(e)
}
요약
이 랩에서는 time 패키지를 사용하여 Golang 에서 시간을 형식 지정하고 파싱하는 방법을 배웠습니다. time.RFC3339 레이아웃을 사용하여 시간을 형식 지정하고 파싱했으며, Mon Jan 2 15:04:05 MST 2006 참조 시간을 사용하여 주어진 시간/문자열을 형식 지정/파싱할 패턴을 보여주었습니다. 또한 Parse 및 Format 함수를 사용하여 각각 시간을 파싱하고 형식 지정했습니다.