NSDateFormatter has a lovely support for producing relative dates such as "Today", "Tomorrow", "Yesterday" when these are supported by the current language. A great advantage is that all of these are localised for you already – you don't need to translate the strings.
You can turn on this functionality with:
[dateFormatter setDoesRelativeDateFormatting: YES];
The down side is that this only seems to work for an instance that is using one of the predefined formats, such as:
[dateFormatter setDateStyle: NSDateFormatterShortStyle];
If you set up the date formatter to use a custom format, like this:
[dateFormatter setDateStyle: @"EEEE"];
Then when you call:
[dateFormatter stringFromDate: date];
… you will just get back an empty string.
I'd like to be able to get relative strings when possible, and use my own custom format when it is not.