NSDate по умолчанию Всеобщую часовой пояс (GMT) ака.
Я предполагаю, что вы находитесь где-то на восточном побережье, на 5 часов позади UTC.
Попробуйте добавить это к вашей дате форматировщику ...
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale:[NSLocale currentLocale]];
... и вы должны увидеть ваше местное время.
Если вы хотите использовать указанный язык, а не 'currentLocale', создайте NSLocale для соответствующего языкового стандарта.
NSLocale *usLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLoc];
... на самом деле это США (возможно, не центральный).
Более конкретная временная зона помощь можно найти здесь ...
http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html
Однако, если вы хотите, чтобы показать время окончания срока, не будет вы все еще хотите в currentLocale пользователя?
Это на устройстве или в тренажере? – DarkDust