if
2 つの日時を比較する条件が機能しないのはなぜですか? である必要がある場合NSDate
、どうすれば変換できますか?
コード:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
if
2 つの日時を比較する条件が機能しないのはなぜですか? である必要がある場合NSDate
、どうすれば変換できますか?
コード:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
これにはメソッドが定義されています。以下のコードを試して、2 つの日付を比較してください:)
switch ([[[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] compare [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
2 つの NSDates (たとえば、dateOne と dateTwo) を比較するには、これを使用します。
switch ([dateOne compare:dateTwo]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
日付を比較するもう 1 つの方法は、次のように 2 つの日付の間隔を確認することですif ([date1 timeIntervalSinceDate:date2] > 0)
。date1
は最新の日付です。
編集:
このように 2 を比較しているため、反対票は無効ですNSDate
。
if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
// Do something
}
エラーは発生しません。NSString
にはそのような方法がないため、問題になる2 を比較していNSString
ます。