检查日期是否在今年 Objective c
Check date if exist in this year or not in Objective c
我 googled 发现很多 link 比较两个日期,但我的情况有点不同,我无法在 google 中找到。我想比较今年是否存在日期。
我有这种格式的日期。
2016-01-20T06:19:27
所以如果低于当年那么我将使用这种格式
[dateformat setDateFormat:@"dd MMM yyyy"];
并且如果在今年存在则将使用
[dateformat setDateFormat:@"dd MMM"];
(删除年份),将来不会有机会日期。
所以需要解决方案。
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);
}
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];
我 googled 发现很多 link 比较两个日期,但我的情况有点不同,我无法在 google 中找到。我想比较今年是否存在日期。 我有这种格式的日期。 2016-01-20T06:19:27 所以如果低于当年那么我将使用这种格式
[dateformat setDateFormat:@"dd MMM yyyy"];
并且如果在今年存在则将使用
[dateformat setDateFormat:@"dd MMM"];
(删除年份),将来不会有机会日期。 所以需要解决方案。
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);
}
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];