Метод time.Time.Round
Метод Round округляет время до ближайшей указанной длительности.
Он возвращает новую временную метку, округленную до кратного значения
переданной длительности. Если время находится ровно посередине между
двумя значениями, округление происходит в большую сторону.
Метод принимает один параметр - длительность d типа time.Duration,
на которую нужно округлить время.
Синтаксис
t.Round(d)
Пример
Давайте округлим время до ближайшей секунды:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.September, 4, 15, 30, 45, 500000000, time.UTC)
res := t.Round(time.Second)
fmt.Println(res)
}
Результат выполнения кода:
"2026-09-04 15:30:46 +0000 UTC"
Время было округлено до ближайшей секунды в большую сторону, так как наносекундная часть превышала 500 миллисекунд.
Пример
Давайте округлим время до ближайших 10 минут:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.September, 4, 15, 27, 30, 0, time.UTC)
res := t.Round(10 * time.Minute)
fmt.Println(res)
}
Результат выполнения кода:
"2026-09-04 15:30:00 +0000 UTC"
Время округлилось до 15:30, так как 15:27 ближе к 15:30, чем к 15:20.
Пример
Давайте рассмотрим случай, когда время находится ровно посередине:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.September, 4, 15, 25, 0, 0, time.UTC)
res := t.Round(10 * time.Minute)
fmt.Println(res)
}
Результат выполнения кода:
"2026-09-04 15:30:00 +0000 UTC"
15:25 находится ровно посередине между 15:20 и 15:30. В таком случае округляется в большую сторону.
Пример
Давайте округлим время до ближайшего часа:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, time.September, 4, 15, 45, 0, 0, time.UTC)
res := t.Round(time.Hour)
fmt.Println(res)
}
Результат выполнения кода:
"2026-09-04 16:00:00 +0000 UTC"
Время 15:45 ближе к 16:00, чем к 15:00, поэтому округление произошло до 16:00.
Смотрите также
-
метод
Time.Truncate,
который усекает время до указанной длительности -
метод
Time.Add,
который прибавляет длительность к времени -
метод
Time.Sub,
который вычисляет разницу между двумя временными метками -
метод
Duration.Round,
который округляет длительность до ближайшего значения