web-dev-qa-db-ja.com

Goで現在のタイムスタンプを取得するにはどうすればよいですか?

Goで現在のタイムスタンプを取得して文字列に変換する最良の方法は何ですか?たとえば、日付と時刻の両方が必要です。 YYYYMMDDhhmmss形式。

113
brianoh

time.Now() 関数と time.Format() メソッドを使用します。

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

20110504111515を印刷するか、少なくとも数分前に印刷しました。 (私は東部夏時間です。)時間パッケージで定義されている constants には、いくつかの事前定義された時刻形式があります。

ローカルタイムゾーンではなくUTCを使用する場合は、 time.Now().UTC() を使用できます。

131
nmichaels

他のすべての応答は、グーグルから来て「タイムスタンプ・イン・ゴー」を探している人にとって非常にミスリーディングです! YYYYMMDDhhmmssは「タイムスタンプ」ではありません。

移動中の日付のタイムスタンプ(1970年1月からの秒数)を取得するには、正しい関数は 。Unix() であり、実際に整数を返します。

62
Bactisme

読みやすくするために、timeパッケージでRFC定数を使用するのが最適です(私は思う)

import "fmt" 
import "time"

func main() {
    fmt.Println(time.Now().Format(time.RFC850))
}
51
matthewmcneely

time.Now() および time.Format() 関数を使用します(Go 1.0.3ではtime.LocalTime()はもう存在しないため)

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

オンラインデモ (プレイグラウンドで過去の日付に修正された、気にしない)

32
Deleplace

@Bactismeの応答のエコーとして、現在のタイムスタンプ(ミリ秒単位など)を取得する方法は次のとおりです。

msec := time.Now().UnixNano() / 1000000

リソース: https://gobyexample.com/Epoch

2
Jack Ryan