我用谷歌搜索并发现许多链接比较了2个日期,但我的情况有点不同,我无法在谷歌找到。我想比较今年是否存在的日期。 我有这种格式的日期。 的 2016-01-20T06:19:27 所以如果低于当年,那么我将使用这种格式
[dateformat setDateFormat:@"dd MMM yyyy"];
如果今年存在,那么将使用
[dateformat setDateFormat:@"dd MMM"];
(删除年份),以后将不存在任何机会日期。 所以需要解决方案。
答案 0 :(得分:4)
NSCalender
有非常强大的方法来进行任何日期数学运算:
NSString *dateString = @"2016-01-20T06:19:27";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss";
NSDate *date = [formatter dateFromString:dateString];
BOOL isInCurrentYear = [[NSCalendar currentCalendar] compareDate:date toDate:[NSDate date] toUnitGranularity:NSCalendarUnitYear] == NSOrderedSame;
formatter.dateFormat = isInCurrentYear ? @"dd MMM" : @"dd MMM yyyy";
NSString *formattedDateString = [formatter stringFromDate:date];
答案 1 :(得分:1)
NSString * date = [dictionary objectForKey:@"date"];
NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *myDate = [dateformat dateFromString:date];
[dateformat setDateFormat:@"yyyy"];
NSString *strYear=[dateformat stringFromDate:myDate];
if([strYear isEqualToString:[dateformat stringFromDate:[NSDate date]]){
[dateformat setDateFormat:@"dd MMM yyyy"];
NSString *strDate=[dateformat stringFromDate:myDate];
NSLog(@"%@",strDate);
}
else{
[dateformat setDateFormat:@"dd MMM"];
NSString *strDate=[dateformat stringFromDate:myDate];
NSLog(@"%@",strDate);
}