比较字符串日期与当前日期

时间:2013-10-31 11:29:25

标签: ios timezone nsdate nsdateformatter

您好我有一个问题我有一个服务器的值(日期值),我必须检查该值与当前日期,并查看哪一个更大。我正在使用以下代码,但它也显示第二个日期更大..如何解决这个问题。总是来到别的地方。

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
{

   }

2 个答案:

答案 0 :(得分: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"];

答案 1 :(得分:0)

以相同格式转换两个日期。然后比较如下:

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

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

希望这有帮助。