시간 형식 지정 및 파싱

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩은 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 참조 시간을 사용하여 주어진 시간/문자열을 형식 지정/파싱할 패턴을 보여주었습니다. 또한 ParseFormat 함수를 사용하여 각각 시간을 파싱하고 형식 지정했습니다.