t := time.Now()
fmt.Println(t.Format("20060102150405"))
распечатывает 20110504111515, или, по крайней мере, это было несколько минут назад. (Я использую восточное летнее время.) В константах, определенных в пакете времени, есть несколько предопределенных форматов времени.
Вы можете использовать, time.Now().UTC()если предпочитаете UTC, а не местный часовой пояс.
Мне определенно нравится Kitchenконстанта ( = "3:04PM")
tux21b
5
Спасибо за эту информацию. Как пакет времени узнает, передавая «20060102150405», что именно мы передаем, поскольку это не одна из предопределенных констант в пакете времени? Какое значение имеют дата и время в пакете времени (20060102150405)? Мне это кажется немного странным, но пока он работает, я полагаю, это не имеет значения, если мы не делаем ошибки при кодировании. Я предполагаю, что они не сочли нужным предоставить константу для этого формата и соответствовать шаблону строки.
brianoh
9
@brianoh: См. golang.org/pkg/time/#Constants. Это время "01/02 15:04:05 PM '06 -0700", потому что каждый компонент имеет свой номер (1, 2, 3 и т. д.), он может определить по цифрам, какие компоненты вам нужны.
newacct
1
Обратите внимание, что time.LocalTime () больше не существует: см. Мой ответ ниже, чтобы быть совместимым с Go 1.0.3
Deleplace
71
Все остальные ответы очень неуместны для тех, кто пришел из Google и ищет «временную метку на ходу»! ГГГГММДДччммсс не является «отметкой времени».
Чтобы получить "отметку времени" даты на ходу (количество секунд с января 1970 г.), правильной функцией является .Unix () , и она действительно возвращает целое число.
Я согласен; вопрос должен быть озаглавлен «текущая дата», а не «текущая временная метка»
разработчик
1
Хотя уже поздно, я думаю .Unix () должен указывать на golang.org/pkg/time/#Time.Unix , возвращаемый тип которого - int64.
bornfree
Хотя вы технически правы, я думаю, что многие программисты в наши дни объединяют метку времени с «текущим временем в некотором отформатированном виде», так что этот заголовок будет в равной степени запутанным для большинства.
Роджер Хилл
Я предложил отредактировать - Get current time as formatted string in Go?. Надеюсь, кто-нибудь это одобрит.
Акки
56
Для удобства чтения лучше всего использовать константы RFC во временном пакете (мне кажется)
Ответы:
Используйте
time.Now()
функцию иtime.Format()
метод.распечатывает
20110504111515
, или, по крайней мере, это было несколько минут назад. (Я использую восточное летнее время.) В константах, определенных в пакете времени, есть несколько предопределенных форматов времени.Вы можете использовать,
time.Now().UTC()
если предпочитаете UTC, а не местный часовой пояс.источник
Kitchen
константа (= "3:04PM"
)Все остальные ответы очень неуместны для тех, кто пришел из Google и ищет «временную метку на ходу»! ГГГГММДДччммсс не является «отметкой времени».
Чтобы получить "отметку времени" даты на ходу (количество секунд с января 1970 г.), правильной функцией является .Unix () , и она действительно возвращает целое число.
источник
Get current time as formatted string in Go?
. Надеюсь, кто-нибудь это одобрит.Для удобства чтения лучше всего использовать константы RFC во временном пакете (мне кажется)
источник
Tuesday, 10-Nov-09 23:00:00 UTC
RFC3339 = "2006-01-02T15:04:05Z07:00"
play.golang.org/p/XmobwWSz5pN golang.org/pkg/timeИспользуйте функции time.Now () и time.Format () (поскольку time.LocalTime () больше не существует с Go 1.0.3)
Онлайн-демо (с датой, установленной в прошлом на игровой площадке, неважно)
источник
s := "Actual time is: "+time.Now().String()
Дополнительная информация в этом посте: Получить текущую дату и время в различных форматах в golang
Это вкус различных форматов, которые вы найдете в предыдущем посте:
источник
Как отголосок ответа @Bactisme, способ получения текущей метки времени (например, в миллисекундах):
Ресурс: https://gobyexample.com/epoch
источник
https://golang.org/src/time/format.go указано Для синтаксического анализа время
15
используется для часов,04
используется для минут,05
для секунд.Для разбора даты
11
,Jan
,January
это в течение нескольких месяцев,02
,Mon
,Monday
за день месяца,2006
за год и, конечно ,MST
для зоныНо вы также можете использовать этот макет, который я считаю очень простым.
"Mon Jan 2 15:04:05 MST 2006"
DEMO
источник
Чтобы ответить на точный вопрос:
источник