Голан: время. Время в день

У меня есть метка времени, мне интересно, есть ли способ округлить ее до начала дня в PST. Например, ts: 1305861602 соответствует 2016-04-14, 21:10:27 -0700, но я хочу округлить его до метки времени, которая отображается на 2016-04-14 00:00:00 -0700. Я читал время. Временный доктор, но не нашел способ сделать это.

Ответ 1

Простой способ сделать это - создать новый Time с использованием предыдущего и назначить только год и день. Это будет выглядеть следующим образом:

rounded := time.Date(toRound.Year(), toRound.Month(), toRound.Day(), 0, 0, 0, 0, toRound.Location())

здесь пример игры; https://play.golang.org/p/jnFuZxruKm

Ответ 2

Вы можете просто использовать продолжительность 24 * time.Hour для сокращения времени.

t := time.Date(2015, 4, 2, 0, 15, 30, 918273645, time.UTC)
d := 24 * time.Hour
t.Truncate(d)

https://play.golang.org/p/BTz7wjLTWX