2010-11-10 3 views
1

У меня есть следующий код, который используется для временного хранения одного NSDate и текущей даты и объединения их в один NSDate. Однако форматировщики настроены правильно, но он возвращает дату, которая даже не близка к той, которая должна быть. Вот кодNSDateFormatter не возвращает правильную дату

/* Get the current date and make a formatter to just show the date ONLY */ 
NSDate *currentDate = [NSDate date]; 
NSDateFormatter *curDateFormatter = [[NSDateFormatter alloc] init]; 
[curDateFormatter setDateFormat:@"MM/dd/YYYY"]; 

/* Create a formatter for the time ONLY */ 
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
[timeFormatter setDateFormat:@"hh:mm"]; 

/* Create a formatter for both date and time */ 
NSDateFormatter *combinedFormatter = [[NSDateFormatter alloc] init]; 
[combinedFormatter setDateFormat:@"MM/dd/YYYY hh:mm"]; 

NSString *combinedDateTime = [NSString stringWithFormat:@"%@ %@", [curDateFormatter stringFromDate:currentDate], [timeFormatter stringFromDate:time]]; 
NSDate *combinedDate = [combinedFormatter dateFromString:combinedDateTime]; 

/* release the formatters */ 
[curDateFormatter release]; 
[timeFormatter release]; 
[combinedFormatter release]; 

return combinedDate; 

говорят, что это делает, когда это сообщение было отправлено, оно должно иметь 11/10/2010 06:47, но вместо того, чтобы это как 12/27/2009 11:45. Это происходит в симуляторе и устройстве.

+1

Что такое переменное время intialized, как? –

+0

В течение года часть должна быть «yyyy» не «YYYY». – Anna

ответ

1

Вместо использования combinedDateFormatter, попробуйте следующее:

NSDate *combinedDate = [NSDate dateWithNaturalLanguageString:combinedDateTime]; 

Это работало отлично для меня.

Значение для combinedDateTime строки было 09/27/2011 11:55

Соответствия Даты combinedDate объекта было 2011-09-27 11:55:00 +0530

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