yyyyMMddHHmmss 형식을 사용하여 현재 시간을 포맷하는 방법은 무엇입니까?


118

이 형식을 사용하여 현재 시간을 형식화하려고합니다 yyyyMMddHHmmss.

t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))

다음과 같이 출력됩니다.

yyyyMMddHHmmss

어떤 제안?


다음은 날짜 형식이 작동하는 방식에 대한 플레이 그라운드 샘플입니다. 이것은 문자열을 시간으로 변환하고 특정 형식으로 시간을 인쇄합니다. play.golang.org/p/qK6_9KNJNx
Nitesh

답변:


241

사용하다

fmt.Println(t.Format("20060102150405"))

Go는 다음 상수를 사용하여 날짜 형식을 지정하므로 여기를 참조 하십시오.

const (
    stdLongMonth      = "January"
    stdMonth          = "Jan"
    stdNumMonth       = "1"
    stdZeroMonth      = "01"
    stdLongWeekDay    = "Monday"
    stdWeekDay        = "Mon"
    stdDay            = "2"
    stdUnderDay       = "_2"
    stdZeroDay        = "02"
    stdHour           = "15"
    stdHour12         = "3"
    stdZeroHour12     = "03"
    stdMinute         = "4"
    stdZeroMinute     = "04"
    stdSecond         = "5"
    stdZeroSecond     = "05"
    stdLongYear       = "2006"
    stdYear           = "06"
    stdPM             = "PM"
    stdpm             = "pm"
    stdTZ             = "MST"
    stdISO8601TZ      = "Z0700"  // prints Z for UTC
    stdISO8601ColonTZ = "Z07:00" // prints Z for UTC
    stdNumTZ          = "-0700"  // always numeric
    stdNumShortTZ     = "-07"    // always numeric
    stdNumColonTZ     = "-07:00" // always numeric
)

56
실제로 golang 형식은 매우 이상합니다. yyyymmddHHiiss 스타일을 사용하지 않고 ""2006/01/02/15/04/05 "를 사용하는 이유는 무엇
입니까?

11
레이아웃 문자열은 2006 년 1 월 2 일 15:04:05 MST의 타임 스탬프를 나타냅니다. 이 값을 기억하는 쉬운 방법은이 순서대로 표시 될 때 값 (위의 요소와 일치)을 보유한다는 것입니다. 1 2 3 4 5 6 -7 From golang.org/src/time/example_test.go
kakilangit

28
미국 이외 지역의 사람들을위한 니모닉 기법 : 2006 년 1 월 2 일 15:04 이후 5 초 만에 무엇을하고 있었는지 생각해보십시오. 그러나 부르 키나 파소 (UTC -7)에서 일어나고 있다고 상상해보십시오. 다음에 날짜 형식을 지정해야 할 때는이 특정 이벤트 (!)를 기억하십시오.
Enrico

3
내가 편리한 순차적 니모닉을 알고 있지만, 2 월 1 일을 수없는 이유에 오지 않았다 ...
silasdavis

4
그래서 내가 기억해야 할 것은 월-일 순서로 날짜를 정렬 한 다음 그 중간에 시간을 붙이고 연도 이후에 시간대를 입력하는 것입니다. 그러면 매우 쉽게 기억할 수 있습니다. 산뜻한. 누구든지이 니모닉의 순서를 기억하기 위해 니모닉을 가지고 있습니다 ..?
Joey Sabey 19

20

이 질문은 "golang 현재 시간 형식"을 찾을 때 Google 검색의 맨 위에 표시되므로 다른 형식을 사용하려는 모든 사람들은 언제든지 다음으로 전화 할 수 있습니다.

t := time.Now()

t.Year()

t.Month()

t.Day()

t.Hour()

t.Minute()

t.Second()

예를 들어 현재 날짜 시간을 "YYYY-MM-DDTHH : MM : SS"(예 : 2019-01-22T12 : 40 : 55)로 가져 오려면 fmt.Sprintf와 함께 다음 메서드를 사용할 수 있습니다.

t := time.Now()
formatted := fmt.Sprintf("%d-%02d-%02dT%02d:%02d:%02d",
        t.Year(), t.Month(), t.Day(),
        t.Hour(), t.Minute(), t.Second())

항상 그렇듯이 문서가 최고의 학습 소스임을 기억하십시오 : https://golang.org/pkg/time/


4

Golang의 시간 패키지에는 살펴볼만한 몇 가지 방법이 있습니다.

func (시간) 형식

func (t Time) Format (layout string) string Format은 레이아웃에 따라 형식이 지정된 시간 값의 텍스트 표현을 반환하며, 이는 참조 시간을 표시하여 형식을 정의합니다.

Mon Jan 2 15:04:05 -0700 MST 2006이 값이면 표시됩니다. 원하는 출력의 예입니다. 그런 다음 동일한 표시 규칙이 시간 값에 적용됩니다. 미리 정의 된 레이아웃 ANSIC, UnixDate, RFC3339 및 기타는 참조 시간의 표준적이고 편리한 표현을 설명합니다. 참조 시간의 형식 및 정의에 대한 자세한 내용은 ANSIC 설명서 및이 패키지에서 정의한 기타 상수를 참조하십시오.

출처 ( http://golang.org/pkg/time/#Time.Format )

또한 레이아웃 정의 예제 ( http://golang.org/src/pkg/time/example_test.go )를 찾았습니다.

func ExampleTime_Format() {
        // layout shows by example how the reference time should be represented.
        const layout = "Jan 2, 2006 at 3:04pm (MST)"
        t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.Local)
        fmt.Println(t.Format(layout))
        fmt.Println(t.UTC().Format(layout))
        // Output:
    // Nov 10, 2009 at 3:00pm (PST)
        // Nov 10, 2009 at 11:00pm (UTC)
    }

4
import("time")

layout := "2006-01-02T15:04:05.000Z"
str := "2014-11-12T11:45:26.371Z"
t, err := time.Parse(layout, str)
if err != nil {
    fmt.Println(err)
}
fmt.Println(t)

제공합니다 :

>> 2014-11-12 11:45:26.371 +0000 UTC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.