简体   繁体   English

您如何在Objective-C中将日期对象与字符串进行比较?

[英]How do you compare date objects to strings in Objective-C?

I have an array of dates in this format: 我有以下格式的日期数组:

date: 2012-01-02,2012-03-17,2012-04-09,2012-05-07,2012-06-04,2012-08-06,2012-10-29,2012-12-25,2012-12-26. 

I want to compare the dates with today's date, but I need some help. 我想将日期与今天的日期进行比较,但是我需要一些帮助。 This is my code. 这是我的代码。

NSArray *date =[dict12 objectForKey:@"ie_date_closed"];
NSLog(@"date:%@",date);
int i=date;
for (i=0; i<6; i++) 
{   
    NSComparisonResult result = [todaydate compare:date[i]];   
    NSLog(@"result:%d",result);
}

Here is the code have a look at & try to implement your self using it : 这是代码,请看一下并尝试使用它实现自己:

for (i=0; i<[date count]; i++)
{
    NSDateformatter *format = Define Your date Format Here
    NSDate yourDate = [format dateFromString:[date objectAtIndex:i]];
    If ([YourDate compare:[NSDate date]] == NSOrderedSame)
    {
        NSLog(@"Both Dates are same");
    }
}

Note : I am not giving you whole readymade code but just for a hint so using it you can be able to implement what you want. 注意:我没有给您完整的现成代码,只是给您一个提示,因此使用它可以实现所需的代码。

Hope this will help. 希望这会有所帮助。

try it 试试吧

 NSDate *firstTime;
    NSDate *nowTime;
   NSDate *localDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setTimeZone:[NSTimeZone   systemTimeZone]];
    dateFormatter.dateFormat = @"YYYY-MM-dd";
    NSString *str = [dateFormatter stringFromDate:localDate];


      NSArray *date =[dict12 objectForKey:@"ie_date_closed"];
      NSLog(@"date:%@",date);
     for (i=0; i<[date count]; i++) 
{   


     NSString *openTime =[NSString stringWithFormate:"%@"[date objectAtindex:i]];
    NSDateFormatter *dateComperFormatter1 = [[NSDateFormatter alloc] init];
    [dateComperFormatter1 setTimeZone:[NSTimeZone   systemTimeZone]];
    [dateComperFormatter1 setDateFormat:@"YYYY-MM-dd"];


    firstTime = [dateComperFormatter1 dateFromString:openTime];
    nowTime = [dateComperFormatter1 dateFromString:str];
    //    NSComparisonResult result;
    //   // has three possible values: NSOrderedSame,NSOrderedDescending, NSOrderedAscending
    //
    //    result = [nowTime compare:firstTime]; // comparing two dates

    NSComparisonResult result = [nowTime compare:firstTime];
  }

Try below code:- 试试下面的代码:-

NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd"];
for (NSString *arrDt in date){
if ([arrDt isEqualToString:[formatter stringFromDate:[NSDate date]]]){
NSLog(@"Equal Date");}}

Note:- You need to set the dateFormat according to array object dates. 注意:-您需要根据数组对象的日期设置dateFormat。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM