Эпоха является универсальной системой для описания определенного промежутка времени. Начало времени эпохи определяется как 00:00:00 1 Jan 1970 UTC. Значением эпохи является количество секунд с начала отметки времени, минус количество високосных секунд.

Пакет time и тип Time дают возможность оперировать и находить время эпохи UNIX.

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

Как конвертировать дату в UNIX timestamp в Golang?

1. Создайте файл epoch.go со следующим содержимым:

2. Запустите код через go run epoch.go;
3. Посмотрите на результат в терминале:

Конвертируем строку с датой в UNIX Timestamp

Мы уже знаем как превратить строку с датой в экземпляр Time из предыдущей строки. Мы воспользуемся этими знаниями и превратим строку даты в UNIX timestamp. В примере ниже, мы узнаем сколько секунд прошло от 1 Января 1970 года до 1 января 2020 года.

Результат:

Конвертируем Unix timestamp в дату

У нас имеется вот такой UNIX timestamp 1234567890, мы хотим узнать на какую дату оно указывает.

Результат:

Пакет time содержит функцию Unix, что принимает два аргумента типа int64, а также секунды и наносекунды времени эпохи. В данном случае вы получите экземпляр Time из значения эпохи.

Для получения значения эпохи из экземпляра Time можно вызвать метод с тем же названием, что и создание Time из эпохи Unix. Есть еще один метод, который называется UnixNano, что возвращает число миллисекунд вместо секунд.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!