0

こんにちは、問題があります。サーバーからの値 (日付値) があり、現在の日付でその値を確認し、どちらが大きいかを確認する必要があります。次のコードを使用していますが、2 番目の日付が大きいことも示しています。これを解決するには、常にelseブロックに来ます。

NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

NSDate *dateOfEvent=[dateFormatter dateFromString:@"2013-04-04 03:22:55"];


if([dateOfEvent compare:[NSDate date]]==NSOrderedAscending)
{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Message" message:@"Event has    been passed." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
    [alert show];
    return;
}
else
{

   }
4

2 に答える 2

1

日付を適切に作成していません。フォーマッタは文字列と同じ形式にする必要があります。文字列が「2013-04-04」の場合、日付フォーマッタは「yyyy-MM-dd:

NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

NSDate *dateOfEvent=[dateFormatter dateFromString:@"2013-04-04"];
于 2013-10-31T11:33:12.710 に答える
0

両方の日付を同じ形式に変換します。次に、次のように比較します。

if (serverDate.timeIntervalSince1970 > currentDate.timeIntervalSince1970) {
// Server date is greater. Do your stuff

}
else {
// Current date is greater. Do your stuff
}

お役に立てれば。

于 2013-10-31T11:42:39.583 に答える