Нахождение разницы между двумя датами — задача не такая уж редкая, как может показаться. В Go для этой задачи есть стандартный пакет time и тип Time . Они предоставляют специальные методы для осуществления поставленой задачи.

Как найти разницу между датами в Golang?

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

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

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

Go на Форум

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

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

Go в ВК Go в Telegram

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

Метод Sub(), Since() и Until() для поиска разницы между датами

Метод Sub экземпляра Time является универсальным для нахождения разницы между двумя датами. Результатом является time.Duration, что представляет счет в наносекундах между двумя датами.

Обратите внимание, что если разница превышает лимит максимума/минимума time.Duration, тогда этот максимум или минимум возвращается.

Функции Since и Until являются просто коротким способом выяснения разницы между текущим моментом и указанной датой. Их работа соответствует их названиям. Функция Since возвращает такой же результат, что и time.Now().Sub(t); аналогично Until возвращает такой же результат, что и t.Sub(time.Now()).

На заметку: Метод Sub также учитывает временные зоны. Таким образом, разница возвращается с учетом локации каждого экземпляра Time.