【Swift4】Date 日付と日時を比較する方法(NSDate)【Objective-C】
Date型の日付や日時を比較する方法です。
日付の比較にはcompare()関数を使用します。
この方法を使用するとStrings型(文字列)の日付や日時を比較することも可能です。
Swift
swiftでは日時はDate型になります。
// 今の日時を取得(2018-05-14 20:00:00 とする)
let date1 = Date()
//日付の文字列をDate型にする
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date2 = dateFormatter.date(from: "2018-05-30 23:59:59")
// NSDate(日時)の比較
if ( date1.compare(date2!) == .orderedAscending ) {
print("date1が前")
}
else if ( date1.compare(date2!) == .orderedSame ) {
print("date1とdate2は同じ")
}
else if ( date1.compare(date2!) == .orderedDescending ) {
print("date1が後")
}
Objective-C
Objective-Cでは日時はNSDate型になります。
// 今の日時を取得(2018-05-14 20:00:00 とする)
NSDate *date1 = [NSDate date];
// 日付の文字列をNSDate型にする
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date2 = [dateFormatter dateFromString:@"2018-05-30 23:59:59"];
// NSDate(日時)の比較
if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1が前");
}
else if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1とdate2は同じ");
}
else if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1が後");
}