Вот пример того, как работает форматирование даты. Это и преобразование строки во время, и печать времени в определенном формате. play.golang.org/p/qK6_9KNJNx
Нитеш,
Ответы:
243
Использовать
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)
на самом деле формат голанга очень странный. почему бы не использовать стиль yyyymmddHHiiss, но использовать "" 2006/01/02/15/04/05 ", я не понимаю настоящую причину
Kewin
11
Строка макета представляет собой отметку времени, 2 января 15:04:05 2006 MST. Легкий способ запомнить это значение состоит в том, что оно содержит, когда представлено в этом порядке, значения (выровненные с элементами выше): 1 2 3 4 5 6-7 Из golang.org/src/time/example_test.go
kakilangit 02
28
Техника мнемоники для тех, кто находится за пределами США: представьте, что вы делали 2 января 2006 года, всего через пять секунд после 15:04, но представьте, что это происходит в Буркина-Фасо (UTC -7). В следующий раз, когда вам нужно будет отформатировать дату, просто запомните это конкретное событие (!)
Энрико,
3
Я не знал последовательной мнемоники, удобно, но давай, почему сейчас не 1 февраля ...
Силасдавис
4
Итак, все, что мне нужно запомнить, это выстроить дату в порядке месяц-день-год, затем вставить время посередине и поставить часовой пояс после года, и это станет очень легко запомнить. Аккуратно. У кого-нибудь есть мнемоника для запоминания порядка этой мнемоники ..?
Joey
20
Этот вопрос появляется в верхней части поиска Google, когда вы находите «формат текущего времени golang», поэтому всем, кто хочет использовать другой формат, помните, что вы всегда можете позвонить по следующему адресу:
t := time.Now()
t.Year()
t.Month()
t.Day()
t.Hour()
t.Minute()
t.Second()
Например, чтобы получить текущую дату и время в формате «ГГГГ-ММ-ДДТЧЧ: ММ: СС» (например, 2019-01-22T12: 40: 55), вы можете использовать эти методы с fmt.Sprintf:
В пакете Time в Golang есть несколько методов, на которые стоит обратить внимание.
func (Время) Формат
func (t Time) Format (строка макета) string Format возвращает текстовое представление значения времени, отформатированного в соответствии с макетом, который определяет формат, показывая, как ссылочное время,
Mon Jan 2 15:04:05 -0700 MST 2006 было бы показано, если бы это было значение; он служит примером желаемого результата. Затем те же правила отображения будут применены к значению времени. Предопределенные схемы ANSIC, UnixDate, RFC3339 и другие описывают стандартные и удобные представления эталонного времени. Для получения дополнительной информации о форматах и определении эталонного времени см. Документацию для ANSIC и других констант, определенных в этом пакете.
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)}
Ответы:
Использовать
поскольку Go использует следующие константы для форматирования даты, см. здесь
источник
Этот вопрос появляется в верхней части поиска Google, когда вы находите «формат текущего времени golang», поэтому всем, кто хочет использовать другой формат, помните, что вы всегда можете позвонить по следующему адресу:
Например, чтобы получить текущую дату и время в формате «ГГГГ-ММ-ДДТЧЧ: ММ: СС» (например, 2019-01-22T12: 40: 55), вы можете использовать эти методы с fmt.Sprintf:
Как всегда, помните, что документы - лучший источник знаний: https://golang.org/pkg/time/
источник
В пакете Time в Golang есть несколько методов, на которые стоит обратить внимание.
Источник ( http://golang.org/pkg/time/#Time.Format )
Я также нашел пример определения макета ( http://golang.org/src/pkg/time/example_test.go )
источник
дает:
источник