试图将日期选择器时间与当前时间ios进行比较

时间:2014-09-12 15:22:05

标签: ios nsdate

我试图将UIDatePickers选择的时间与当前时间进行比较。我最好将UIDatePickers选择的时间与当前设备上的时间进行比较。这是我尝试过的,但它根本不准确。

NSDate * date = [NSDate date];
NSLog(@"DatePicker.date %@ <= date %@",self.DatePicker.date,date);

if (self.DatePicker.date<=date) {

    UIAlertView * alert=[[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Choose a time in the future." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    return;

}

它退出了;

self.DatePicker.date 2014-09-12 15:15:00 +0000 <= date 2014-09-12 15:03:29 +0000

并显示AlertView

这个时钟似乎还需要一个小时。

2 个答案:

答案 0 :(得分:4)

您不能将==<=等标准比较运算符与对象一起使用。您需要使用适当的方法进行比较,例如compare:

if ([self.DatePicker.date compare:date] == NSOrderedDescending) {
}

我可能会倒退。它可能需要NSOrderedAscending

答案 1 :(得分:0)

  1. 将选择器的timeZone属性设置为当前时区。
  2. 比较NSDate个对象时,您应该使用compare: