今回は、Swift で文字列データの日付を比較する方法についてです。
タイトルにもある通り、compare()
関数を利用します。
参考にさせていただいたサイトはこちら。
【Swift4】Date 日付と日時を比較する方法(NSDate)【Objective-C】 | ニートに憧れるプログラム日記
https://program-life.com/550
サンプルコードは下記の通りです。
let today = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let day1 = dateFormatter.date(from: "2021-11-20 13:00:00") let day2 = dateFormatter.date(from: "2021-12-01 12:00:00") if day1?.compare(today) == .orderedAscending { print("day1は今日より前の日付です") } if day2?.compare(today) == .orderedDescending { print("day2は今日より後の日付です") }
3〜6行目で、文字列データの日付を Date 型に変換しています。
その後、8〜13行目で .compare()
関数を使って、今日の日付と比較をしています。
.compare()
関数の引数に渡した日付よりも前の日付だったら、結果が .orderedAscending
になり、後の日付だったら .orderedDescending
が返ってきます。
なお、今回のサンプルコードにはありませんが、もし同じ日時だった場合は .orderedSame
が返ってきます。
やっていることは以上です!
私は、上記を使って、今日の日付が指定した期間内かどうかを判定するのに使用しました。
以上、Swift で文字列データの日付を比較する方法についてでした。
ご参考になれば幸いです。