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은 시간으로, 0405은 초로 사용됩니다.

날짜를 구문 분석 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.