I run the following code:
NSDate *now = [NSDate date];
NSLog(@"now: %@", now);
and get :
2011-09-16 16:14:16.434 iSavemore[1229:7907] now: 2011-09-16 21:14:16 +0000
As you can see i’m running this at 16:14:16 (4:14 pm) but NSDate is returning 21:16:16 (9:14 pm!). Is this an Xcode4 issue or NSDate issue?
NSDate defaults to the Universal timezone (aka GMT).
I’m guessing you’re somewhere on the East Coast, 5 hours behind UTC.
Try adding this to your date formatter…
…and you should see your local time.
If you want to use a specified locale, rather than ‘currentLocale’, create a NSLocale for the relevant locale.
…actually that’s US (so possibly not Central).
More specific timezone help can be found here…
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html
However, if you want to show expiry time, wouldn’t you still want it in the user’s currentLocale?