Как отформатировать текущее время с помощью формата yyyyMMddHHmmss?


Я пытаюсь отформатировать текущее время с помощью этого формата yyyyMMddHHmmss.

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

Это вывод:

yyyyMMddHHmmss

какие предложения?

3   51   2013-11-27 08:45:28

3 ответа:

использовать

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

как Go использует следующие константы для форматирования даты, см. здесь

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
)

я закодировал пакет для этого usecase https://github.com/vjeantet/jodaTime

date := jodaTime.Format("YYYY.MM.dd", time.Now())
fmt.Println(date)

Это позволяет анализировать и форматировать время.Время после раскладки jodaTime: http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html

пакет времени в Golang имеет некоторые методы, которые могут быть стоит посмотреть.

func (Time) Format

func (T Time) формат (строка макета) строка Формат возвращает текстовое представление значения времени, отформатированного в соответствии с макетом, который определяет формат, показывая, как опорное время,

Пн янв 2 15: 04:05 -0700 MST 2006 будет отображаться, если это значение; он является примером желаемого результата. Тот же затем к значению времени будут применены правила отображения. Предопределенные макеты ANSIC, UnixDate, RFC3339 и другие описывают стандартные и удобные представления опорного времени. Дополнительные сведения о форматах и определении опорного времени см. В документации по ANSIC и другим константам, определенным этим пакетом.

Источник (http://golang.org/pkg/time/#Time.Format)

Я также нашел пример определения макет (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)
    }