Я пытаюсь отформатировать текущее время, используя этот формат yyyyMMddHHmmss
.
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
Это выводит:
yyyyMMddHHmmss
Любые предложения?
Я пытаюсь отформатировать текущее время, используя этот формат yyyyMMddHHmmss
.
t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))
Это выводит:
yyyyMMddHHmmss
Любые предложения?
Использование
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
)
я написал код для этого сценария использования 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
В пакете времени в Голанге есть несколько методов, на которые стоит обратить внимание.
Func (время) формат
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)
}
Этот вопрос стоит на первом месте в поиске Google, когда вы найдете "формат текущего времени Голанга", поэтому для всех людей, которые хотят использовать другой формат, помните, что вы всегда можете позвонить по адресу:
t := time.Now()
t.Year()
t.Month()
t.Day()
t.Hour()
t.Minute()
t.Second()
Например, чтобы получить текущую дату и время в формате "ГГГГ-ММ-ДДТЧ: ММ: СС" (например, 2019-01-22T12: 40: 55), вы можете использовать эти методы с 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())
Как всегда, помните, что документы являются лучшим источником обучения: https://golang.org/pkg/time/
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)
дает:
>> 2014-11-12 11:45:26.371 +0000 UTC