【Swift】compare()を使ってString型の日時データを比較する

今回は、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 で文字列データの日付を比較する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG