Swiftで日付だけの比較
Swift上で日付の比較をしたい。単に2つのDate()変数の日付が同一かどうかを確認したい。 ただし、Date()関数では時刻の情報も保持しているため、単純に以下のように比較しても、現在時刻の取得が微妙に異なるため同一と判定されない。
code: swift
var dateA = Date()
var dateB = Date()
if dateA == dateB {
print("Same")
} else {
print("Different")
}
https://gyazo.com/d07f52de0a182faedcd0329ced9cb0c4
DateFormatter()を使用する
今回は2つの日付が同一かどうかを判定すれば良かったので、以下の方法を使用した。
DateFormatter()関数を使用して、日付のみString型で取り出すメソッドを作成する
Date()関数で作成した日付インスタンスを同メソッドを使用してString型にして比較する
code: swift
func dateFormat(date: Date) -> String {
let f = DateFormatter()
f.dateStyle = .long
f.timeStyle = .none
return f.string(from: date)
}
if dateFormat(date: dateA) == dateFormat(date: dateB) {
print("Same")
} else {
print("Different")
}
https://gyazo.com/5496bd930c6e858b5e69471b9fdcc041
画面表示のため同メソッドをすでに作成していたのでその流用という感じ。