私はタイムスタンプが入ってきています。それをPSTの1日の始まりに丸める方法があるのだろうかと思います。たとえば、ts:1305861602
は2016-04-14, 21:10:27 -0700
に対応しますが、2016-04-14 00:00:00 -0700
にマップされたタイムスタンプに丸めたいとします。私は時間を読んでいます。時間の文書は、それを行う方法を見つけませんでした。ゴラン:time.Timeラウンドからデート
12
A
答えて
16
これを行う簡単な方法は、前のものを使用して年月日のみを割り当てて新しいTime
を作成することです。それはこのようになります。
rounded := time.Date(toRound.Year(), toRound.Month(), toRound.Day(), 0, 0, 0, 0, toRound.Location())
ここは遊びの例です。 https://play.golang.org/p/jnFuZxruKm
7
期間を短縮するには、期間24 * time.Hour
をそのまま使用してください。
t := time.Date(2015, 4, 2, 0, 15, 30, 918273645, time.UTC)
d := 24 * time.Hour
t.Truncate(d)
+13
truncateは常にUTCに対してトランケートするので、タイムゾーンがUTCでない場合、そのタイムゾーンでは00:00になりません。 – Guy
関連する問題
ん[ 'Time.Truncate'](https://golang.org/pkg/time/#Time.Truncate)あなたは何をしたいですか? – JimB
Truncateは別のオプションですが、時間、分、秒、およびナノ秒を表す 'Duration'を作成する必要があるため、実装するのは苦痛です。 – evanmcdonnal
Time.TruncateはUTC、AFAICTが必要な場合にのみ機能します – schimmy