Метод time.Time.Before

Метод Before сравнивает два момента времени. Он вызывается на объекте time.Time и принимает в качестве аргумента другой объект time.Time. Метод возвращает true, если время, на котором он вызван, наступает раньше (строго раньше) переданного времени. В противном случае возвращается false. Важно: сравнение происходит с учетом часового пояса, но сами объекты Time должны быть приведены к общему знаменателю (обычно к UTC) для корректного сравнения, хотя метод корректно обрабатывает разные часовые пояса, приводя их к UTC внутри себя.

Синтаксис

got.Before(u)

где t и u - значения типа time.Time.

Пример

Давайте создадим два момента времени и проверим, предшествует ли первый второму:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t1 := time.Date(2026, time.September, 4, 12, 0, 0, 0, time.UTC)
  t2 := time.Date(2026, time.September, 5, 12, 0, 0, 0, time.UTC)

  res := t1.Before(t2)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Теперь проверим случай, когда время не предшествует, а совпадает:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t1 := time.Date(2026, time.September, 4, 12, 0, 0, 0, time.UTC)
  t2 := time.Date(2026, time.September, 4, 12, 0, 0, 0, time.UTC)

  res := t1.Before(t2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Рассмотрим случай, когда время позже:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t1 := time.Date(2026, time.September, 5, 12, 0, 0, 0, time.UTC)
  t2 := time.Date(2026, time.September, 4, 12, 0, 0, 0, time.UTC)

  res := t1.Before(t2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Смотрите также

  • метод time.Time.After,
    который проверяет, наступает ли время после указанного
  • метод time.Time.Equal,
    который проверяет равенство двух моментов времени
  • метод time.Time.Sub,
    который вычисляет разницу между двумя моментами времени
  • функцию time.Now,
    которая возвращает текущее локальное время