Many a times, in an iPhone application, you might need to format the date relative to today. This code snippet will help you do it.
+ (NSString *) formattedDateRelativeToNow:(NSDate *)date { NSDateFormatter *mdf = [[NSDateFormatter alloc] init]; [mdf setDateFormat:@"yyyy-MM-dd"]; NSDate *midnight = [mdf dateFromString:[mdf stringFromDate:date]]; [mdf release]; NSInteger dayDiff = (int)[midnight timeIntervalSinceNow] / (60*60*24); NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; if(dayDiff == 0) [dateFormatter setDateFormat:@"'Today, 'h':'mm aaa"]; else if(dayDiff == -1) [dateFormatter setDateFormat:@"'Yesterday, 'h':'mm aaa"]; else if(dayDiff == -2) [dateFormatter setDateFormat:@"MMMM d', Two days ago'"]; else if(dayDiff > -7 && dayDiff <= -2) [dateFormatter setDateFormat:@"MMMM d', This week'"]; else if(dayDiff > -14 && dayDiff <= -7) [dateFormatter setDateFormat:@"MMMM d'; Last week'"]; else if(dayDiff >= -60 && dayDiff <= -30) [dateFormatter setDateFormat:@"MMMM d'; Last month'"]; else if(dayDiff >= -90 && dayDiff <= -60) [dateFormatter setDateFormat:@"MMMM d'; Within last three months'"]; else if(dayDiff >= -180 && dayDiff <= -90) [dateFormatter setDateFormat:@"MMMM d'; Within last six months'"]; else if(dayDiff >= -365 && dayDiff <= -180) [dateFormatter setDateFormat:@"MMMM d, YYYY'; Within this year'"]; else if(dayDiff < -365) [dateFormatter setDateFormat:@"MMMM d, YYYY'; A long time ago'"]; return [dateFormatter stringFromDate:date]; }
Link back if you liked it…
–Mugunth
If you enjoyed this post, make sure you subscribe to my RSS feed!Related posts:
- bit.ly wrapper for Objective-C/iPhone Continuing from my part 1, in this section, we will...
- XCode Tip: Objective-C Singleton Class Template I have a habit of creating Singleton pattern classes for...
- iPhone Tutorial: Scheduling Local Notifications using a Singleton class In iOS 4, Apple introduced a new way to send...
- iPhone Tutorial: How to send In-App SMS Officially, iPhone OS 4 is out of NDA and I...
- iPhone Tutorial: Better way to check capabilities of iOS devices The iPhone OS started off with a single device, the...

2 Responses to “Formatting Dates relative to Now – Objective C (iPhone)”