0

您好,我有一个问题,我有一个来自服务器的值(日期值),我必须使用当前日期检查该值并查看哪个更大。我正在使用以下代码,但它也显示第二个日期更大..如何解决这个问题。它总是出现在 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 回答