【Go】timeパッケージのAfter, Before, Equalの使い方

更新日:2025/3/13/(木) 12:38

タグ:Go

概要

Goの日時比較のサンプルコードをまとめたもの

サンプルコード

time.After()・・・timeAがtimeBを超える日時の場合にtrue

func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := timeA.After(timeB) fmt.Println(result) // true } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := timeA.After(timeB) fmt.Println(result) // false } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) result := timeA.After(timeB) fmt.Println(result) // false }

time.Before()・・・timeAがtimeBより前の日時の場合にtrue

func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := timeA.Before(timeB) fmt.Println(result) // true } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := timeA.Before(timeB) fmt.Println(result) // false } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) result := timeA.Before(timeB) fmt.Println(result) // false }

!time.Before()・・・timeAがtimeB以降の日時の場合にtrue(time.After() || time.Equal()と同じ)

func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := !timeA.Before(timeB) fmt.Println(result) // true } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := !timeA.Before(timeB) fmt.Println(result) // false } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) result := !timeA.Before(timeB) fmt.Println(result) // true } // time.After() || time.Equal() func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := timeA.After(timeB) || timeA.Equal(timeB) fmt.Println(result) // true }

!time.After()・・・timeAがtimeB以前の日時の場合にtrue(time.Before() || time.Equal()と同じ)

func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := !timeA.After(timeB) fmt.Println(result) // true } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := !timeA.After(timeB) fmt.Println(result) // false } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) result := !timeA.After(timeB) fmt.Println(result) // true } // time.Before() || time.Equal() func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := timeA.Before(timeB) || timeA.Equal(timeB) fmt.Println(result) // true }

time.Equal()・・・timeAがtimeBと同じ日時の場合true

func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) result := timeA.Equal(timeB) fmt.Println(result) // true } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 10, 0, 0, 0, 0, time.UTC) result := timeA.Equal(timeB) fmt.Println(result) // false } func main() { timeA := time.Date(2024, 1, 15, 0, 0, 0, 0, time.UTC) timeB := time.Date(2024, 1, 20, 0, 0, 0, 0, time.UTC) result := timeA.Equal(timeB) fmt.Println(result) // false }