2014-08-28 2 views
0

Ниже приведено то, что у меня есть.NSDateFormatter печать на год раньше даты

NSString *dateString = @"08/27/2014 04:00:00 PM"; 
NSLog(@"dateString---%@", dateString); 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM/dd/YYYY hh:mm:ss a"]; 
NSDate *dateFromString = [[NSDate alloc] init]; 
dateFromString = [dateFormatter dateFromString:dateString]; 
NSLog(@"dateFromString===%@", dateFromString); 

Ниже приведены NSLog.

dateString---08-27-2014 04:00:00 PM 
dateFromString===2013-12-22 13:00:00 +0000 

Я не понимаю, что я делаю неправильно здесь. Почему дата печатается в 2013 году, а также с неправильными датами?


На самом деле у меня есть строка даты в 8/27/2014 4:00:00 PM и используя в качестве форматировщика M/dd/YYYY h:mm:ss a. Тем не менее, он дает ту же проблему.

+0

Ссылка на эту ссылку. http://stackoverflow.com/questions/25362333/ios-unable-to-parse-date-string-31-07-2014-0000-bst-to-get-string-08-31-14/ 25362758 # 25362758 –

ответ

3

Ваш YYYY должен быть yyyy:

[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 

Просто проверил это, и это работает для меня.

Код: Link

+0

отлично ... но часы идут не так ... это говорит 13:00 вместо 16:00 (4 PM) –

+0

Хм. Я предполагаю, что это связанная с часовым поясом проблема, потому что для меня это говорит 21:00. – rebello95

+0

это сработало для меня, но почему! ?? Я ленив читать ссылку ссылки ... – EFE

Смежные вопросы