0

if2 つの日時を比較する条件が機能しないのはなぜですか? である必要がある場合NSDate、どうすれば変換できますか?

コード:

if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
    // Do ...something
}
4

3 に答える 3

3

これにはメソッドが定義されています。以下のコードを試して、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;
}
于 2013-02-20T05:32:58.153 に答える
2

2 つの NSDates (たとえば、dateOne と dateTwo) を比較するには、これを使用します。

switch ([dateOne compare:dateTwo]){
     case NSOrderedAscending:
          NSLog(@"NSOrderedAscending");
    break;
    case NSOrderedSame:
          NSLog(@"NSOrderedSame");
    break;
    case NSOrderedDescending:
         NSLog(@"NSOrderedDescending");
    break;
}
于 2013-02-20T05:29:03.457 に答える
1

日付を比較するもう 1 つの方法は、次のように 2 つの日付の間隔を確認することですif ([date1 timeIntervalSinceDate:date2] > 0)date1は最新の日付です。

編集:

このように 2 を比較しているため、反対票は無効ですNSDate

if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
    // Do something
}

エラーは発生しません。NSStringにはそのような方法がないため、問題になる2 を比較していNSStringます。

于 2013-02-20T05:36:01.187 に答える