Bagaimana memformat waktu saat ini menggunakan format yyyyMMddHHmmss?

119

Saya mencoba memformat waktu saat ini menggunakan format ini yyyyMMddHHmmss.

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

Itu menghasilkan:

yyyyMMddHHmmss

Ada saran?

sergserg
sumber
Berikut adalah contoh tempat bermain tentang cara kerja format tanggal. Ini mengubah string menjadi waktu dan mencetak waktu dalam format tertentu. play.golang.org/p/qK6_9KNJNx
Nitesh

Jawaban:

242

Menggunakan

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

karena Go menggunakan konstanta berikut untuk memformat tanggal, lihat di sini

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
)
Cris
sumber
56
Sebenarnya format golang sangat aneh. mengapa tidak menggunakan gaya yyyymmddHHiiss, tetapi menggunakan "" 2006/01/02/15/04/05 ", saya belum mengerti alasan sebenarnya
Kewin
11
String layout adalah representasi dari stempel waktu, 2 Jan 15:04:05 2006 MST. Cara mudah untuk mengingat nilai ini adalah bahwa nilai tersebut memegang, ketika disajikan dalam urutan ini, nilai-nilai (berbaris dengan elemen di atas): 1 2 3 4 5 6 -7 Dari golang.org/src/time/example_test.go
kakilangit
28
Teknik mnemonik bagi mereka yang berada di luar AS: pikirkan apa yang Anda lakukan pada tanggal 2 Januari 2006, hanya lima detik setelah pukul 15:04, tetapi bayangkan hal itu terjadi di Burkina Faso (UTC -7). Lain kali Anda perlu memformat tanggal, ingat saja acara khusus ini (!)
Enrico
3
Saya tidak tahu mnemonik berurutan, berguna, tapi ayolah mengapa ini bukan tanggal 1 Februari ...
silasdavis
4
Jadi yang harus saya ingat, adalah menyusun tanggal dalam urutan bulan-hari-tahun, kemudian menempelkan waktu di tengahnya, dan meletakkan zona waktu setelah tahun, dan itu menjadi sangat mudah untuk diingat. Rapi. Adakah yang mendapat mnemonik karena mengingat urutan mnemonik ini ..?
Joey Sabey
20

Pertanyaan ini muncul di atas pencarian Google ketika Anda menemukan "format waktu saat ini golang" jadi, untuk semua orang yang ingin menggunakan format lain, ingatlah bahwa Anda selalu dapat menelepon ke:

t := time.Now()

t.Year()

t.Month()

t.Day()

t.Hour()

t.Minute()

t.Second()

Misalnya, untuk mendapatkan waktu tanggal saat ini sebagai "YYYY-MM-DDTHH: MM: SS" (misalnya 2019-01-22T12: 40: 55) Anda dapat menggunakan metode ini dengan 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())

Seperti biasa, ingatlah bahwa dokumen adalah sumber pembelajaran terbaik: https://golang.org/pkg/time/

Luis Cabrera Benito
sumber
4

Paket waktu di Golang memiliki beberapa metode yang mungkin menarik untuk dilihat.

func (Waktu) Format

func (t Time) Format (layout string) string Format mengembalikan representasi tekstual dari nilai waktu yang diformat menurut tata letak, yang mendefinisikan format dengan menunjukkan bagaimana waktu referensi,

Senin 2 Jan 15:04:05 -0700 MST 2006 akan ditampilkan jika itu adalah nilainya; ini berfungsi sebagai contoh keluaran yang diinginkan. Aturan tampilan yang sama kemudian akan diterapkan ke nilai waktu. Tata letak yang telah ditentukan ANSIC, UnixDate, RFC3339, dan lainnya menjelaskan representasi waktu referensi yang standar dan nyaman. Untuk informasi lebih lanjut tentang format dan definisi waktu referensi, lihat dokumentasi ANSIC dan konstanta lain yang ditentukan oleh paket ini.

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

Saya juga menemukan contoh mendefinisikan tata letak ( 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)
    }
TheZelus
sumber
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)

memberikan:

>> 2014-11-12 11:45:26.371 +0000 UTC
Cool.wen
sumber