Какой лучший способ получить текущую временную метку в Go и преобразовать в строку? Мне нужно как дату, так и время, например. Формат YYYYMMDDhhmsms.
Как получить текущую метку времени в Go?
Ответ 1
Используйте time.Now()
и time.Format()
.
t := time.Now()
fmt.Println(t.Format("20060102150405"))
выводит 20110504111515
, или, по крайней мере, это произошло несколько минут назад. (Я нахожусь в восточном дневном свете.) В constants, определенном в пакете времени, существует несколько заранее определенных форматов времени.
Вы можете использовать time.Now().UTC()
, если вы предпочитаете использовать UTC, чем ваш локальный часовой пояс.
Ответ 2
Используйте функции time.Now() и time.Format() (как time.LocalTime() больше не существует с Go 1.0.3)
t := time.Now()
fmt.Println(t.Format("20060102150405"))
Онлайн-демонстрация (с датой, зафиксированной в прошлом на игровой площадке, неважно)
Ответ 3
Для удобства чтения лучше всего использовать константы RFC во временном пакете (я думаю)
import "fmt"
import "time"
func main() {
fmt.Println(time.Now().Format(time.RFC850))
}
Ответ 4
Все остальные ответы очень скудны для кого-то из Google и ищут "timestamp in go"! YYYYMMDDhhmmss не является "меткой времени".
Чтобы получить "метку времени" даты в go (количество секунд с января 1970 года), правильная функция . Unix(), и он действительно возвращает целое число
Ответ 5
В качестве ответа эха на @Bactisme способ получения текущей метки времени (например, в миллисекундах):
msec := time.Now().UnixNano() / 1000000
Ресурс: https://gobyexample.com/epoch
Ответ 6
Чтобы ответить на точный вопрос:
import "github.com/golang/protobuf/ptypes"
Timestamp, _ = ptypes.TimestampProto(time.Now())