Go에서 형식화 된 문자열로 현재 시간을 가져 오시겠습니까?


답변:


149

time.Now()기능과 time.Format()방법을 사용하십시오 .

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

인쇄 20110504111515하거나 적어도 몇 분 전에 수행했습니다. (저는 동부 일광 절약 시간입니다.) 시간 패키지에 정의 된 상수 에는 몇 가지 사전 정의 된 시간 형식이 있습니다 .

time.Now().UTC()현지 시간대보다 UTC를 사용 하려는 경우 사용할 수 있습니다 .


15
나는 Kitchen상수 ( = "3:04PM")를 확실히 좋아한다
— tux21b

5
그 정보 주셔서 감사합니다. 시간 패키지는 시간 패키지에서 사전 정의 된 상수 중 하나가 아니기 때문에 "20060102150405"를 전달하는 방법을 어떻게 알 수 있습니까? 시간 패키지 (20060102150405)에서 해당 날짜와 시간의 중요성은 무엇입니까? 나에게는 조금 기발한 것처럼 보이지만 작동하는 한 코딩 할 때 오류가 발생하지 않는 한 중요하지 않다고 생각합니다. 그 형식에 상수를 제공하고 문자열 패턴을 일치시키는 데 적합하지 않은 것 같습니다.
— brianoh

9
@brianoh : 참조 golang.org/pkg/time/#Constants는 그것은 시간 "01/02 오후 3시 4분 5초 06 -0700"각 성분이 서로 다른 번호 (1, 2, 3 등)을 갖기 때문에, 숫자에서 원하는 구성 요소를 결정할 수 있습니다.
— newacct

1
time.LocalTime ()은 더 이상 존재하지 않습니다. 아래의 답변을 참조하십시오 1.0.3 호환
— Deleplace

71

다른 모든 응답은 Google에서 와서 "타임 스탬프가 이동 중"인 사람에게는 매우 잘못된 것입니다. YYYYMMDDhhmmss는 "타임 스탬프"가 아닙니다.

날짜의 "타임 스탬프"를 가져 오려면 (1970 년 1 월부터 초) 정확한 함수는 .Unix () 이며 실제로 정수를 반환합니다.


8
나는 동의한다; 질문의 제목은 "현재 타임 스탬프"가 아닌 "현재 날짜"
— developerbmw

1
늦었지만 .Unix ()는 반환 유형이 int64 인 golang.org/pkg/time/#Time.Unix 를 가리켜 야한다고 생각합니다 .
— bornfree

기술적으로 정확하지만 요즘 많은 코더가 타임 스탬프와 '일부 형식화 된 형식의 현재 시간'을 혼동하여 제목이 가장 혼동 될 수 있다고 생각합니다.
— Roger Hill

나는 편집을 제안했다 Get current time as formatted string in Go?. 누군가가 그것을 승인하기를 바랍니다.
— akki


32

사용 time.Now () 및 time.Format () () time.LocalTime 등을 (이동 1.0.3 기준으로 더 이상 존재하지 않음) 기능

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

온라인 데모 (운동장에서 날짜가 고정 된 날짜는 신경 쓰지 않음)


6
그리고 다음과 같이 간단히 문자열로 사용할 수 있습니다.s := "Actual time is: "+time.Now().String()
— Michael



0

https://golang.org/src/time/format.go 지정 구문 분석 시간 15은 시간으로, 04분 05은 초로 사용됩니다.

날짜를 구문 분석 11, Jan, January달,이다 02, Mon, Monday달의 날, 2006올해 물론 MST영역

그러나이 레이아웃도 사용할 수 있습니다. 매우 간단합니다. "Mon Jan 2 15:04:05 MST 2006"

    const layout = "Mon Jan 2 15:04:05 MST 2006"
    userTimeString := "Fri Dec 6 13:05:05 CET 2019"

    t, _ := time.Parse(layout, userTimeString)
    fmt.Println("Server: ", t.Format(time.RFC850))
    //Server:  Friday, 06-Dec-19 13:05:05 CET

    mumbai, _ := time.LoadLocation("Asia/Kolkata")
    mumbaiTime := t.In(mumbai)
    fmt.Println("Mumbai: ", mumbaiTime.Format(time.RFC850))
    //Mumbai:  Friday, 06-Dec-19 18:35:05 IST

데모


-4

정확한 질문에 대답하려면 :

import "github.com/golang/protobuf/ptypes"

Timestamp, _ = ptypes.TimestampProto(time.Now())

Suran에게 감사합니다. 타임 스탬프를 grpc를 통해 보내야 할 때 유용합니다
— rajeshk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.