私はこのような2つの日付があります。時間を無視して日付のみを比較したいと思います。現在、私はこれを持っている:時間を考慮しないで2つの日付を比較する
package main
import (
"time"
//"fmt"
)
func main() {
a, _ := time.Parse(time.RFC3339, "2017-02-01T12:00:00+00:00")
b, _ := time.Parse(time.RFC3339, "2017-02-11T14:30:00+00:00")
x := b.Sub(a)
println(int(x.Hours()))
}
242
を印刷し、どの。それは正しいですが、私は実際にやりたいことは、このように日付を比較である:
a, _ := time.Parse(time.RFC3339, "2017-02-01T00:00:00+00:00")
b, _ := time.Parse(time.RFC3339, "2017-02-11T00:00:00+00:00")
お知らせ:分/時間/秒がゼロに設定されている - diffは今240時間になります。
私は実際にこれを行う方法を理解できませんでした.Goにはtime.SetTime(0, 0, 0)
という機能がありませんでしたか、それとも正規の方法で日付をリセットするのですか?
タイムゾーンを考慮する必要がありますか?たとえば、「2017-01-01T22:00:00 + 00:00」と「2017-01-02T02:00:00 + 04:00」は同じ瞬間ですが、異なるタイムゾーンで記述されています。 – Addison
これは良い質問です。私が扱う日付はUTCと仮定されていますので、それほど重要ではありません。しかし、時間帯が異なる場合は、そのことを考慮する必要があります。 – Max
その場合、優生教授の答えはそれをカバーしているようです。 FYI - 答えはタイムゾーンを考慮しているので、私が言及した2つの日付は同じ日と考えられ、したがって0時間離れていると考えられます。 – Addison