YyyyMMddHHmmss biçimini kullanarak şimdiki zaman nasıl biçimlendirilir?


119

Bu biçimi kullanarak şimdiki zamanı biçimlendirmeye çalışıyorum yyyyMMddHHmmss.

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

Bu çıktı:

yyyyMMddHHmmss

Baska öneri?


İşte tarih biçimlendirmenin nasıl çalıştığına dair bir oyun alanı örneği. Bu, hem dizeyi zamana dönüştürüyor hem de belirli bir biçimde bir zamanı yazdırıyor. play.golang.org/p/qK6_9KNJNx
Nitesh

Yanıtlar:


242

kullanım

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

Go, tarihi biçimlendirmek için aşağıdaki sabitleri kullandığından, buraya bakın

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
aslında golang formatı çok tuhaf. neden yyyymmddHHiiss stilini kullanmıyorsunuz, ancak "" 2006/01/02/15/04/05 "kullanıyorsunuz, gerçek nedeni anlamadım
Kewin

11
Düzen dizisi, 2 Ocak 15:04:05 2006 MST zaman damgasının bir temsilidir. Bu değeri hatırlamanın kolay bir yolu, bu sırayla sunulduğunda değerleri tutmasıdır
kakilangit

28
ABD dışındakiler için anımsatıcı teknik: 2 Ocak 2006'da, 15: 04'ten sadece beş saniye sonra ne yaptığınızı belirleyin, ama bunun Burkina Faso'da (UTC -7) gerçekleştiğini hayal edin. Bir dahaki sefere bir tarihi biçimlendirmeniz gerektiğinde, bu belirli olayı hatırlayın (!)
Enrico

3
Sıralı anımsatıcıyı bilmiyordum, kullanışlı, ama hadi neden 1 Şubat değil ...
silasdavis

4
Bu yüzden tek hatırlamam gereken, tarihi ay-gün-yıl sırasına göre sıralamak, sonra zamanı ortasına yapıştırmak ve saat dilimini yılın sonrasına koymak ve hatırlaması çok kolay hale geliyor. Temiz. Bu anımsatıcının sırasını hatırlayan bir anımsatıcı olan var mı ..?
Joey Sabey

20

Bu soru, "geçerli saat biçimini" bulduğunuzda Google aramasının en üstüne gelir, bu nedenle, başka bir biçim kullanmak isteyen tüm kişiler için her zaman arayabileceğinizi unutmayın:

t := time.Now()

t.Year()

t.Month()

t.Day()

t.Hour()

t.Minute()

t.Second()

Örneğin, geçerli tarih saatini "YYYY-AA-GGTHH: MM: SS" olarak almak için (örneğin 2019-01-22T12: 40: 55) fmt.Sprintf ile şu yöntemleri kullanabilirsiniz:

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

Her zaman olduğu gibi, dokümanların en iyi öğrenme kaynağı olduğunu unutmayın: https://golang.org/pkg/time/


4

Golang'daki zaman paketinde bakmaya değer bazı yöntemler var.

func (Saat) Biçimi

func (t Time) Format (layout string) string Format, düzene göre formatlanmış zaman değerinin metinsel bir temsilini döndürür, bu da referans zamanın nasıl olduğunu göstererek formatı tanımlayan

2 Ocak Pzt 15:04:05 -0700 MST 2006, değer olsaydı görüntülenirdi; istenen çıktının bir örneği olarak hizmet eder. Aynı görüntüleme kuralları daha sonra zaman değerine uygulanacaktır. Önceden tanımlanmış düzenler ANSIC, UnixDate, RFC3339 ve diğerleri, referans sürenin standart ve kullanışlı temsillerini tanımlar. Referans zamanın formatları ve tanımı hakkında daha fazla bilgi için, ANSIC ve bu pakette tanımlanan diğer sabitlerin belgelerine bakın.

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

Ayrıca düzeni tanımlamanın bir örneğini de buldum ( 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)

verir:

>> 2014-11-12 11:45:26.371 +0000 UTC
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.