Вопрос формата NSDate - PullRequest
       19

Вопрос формата NSDate

0 голосов
/ 01 мая 2011

Вот код из средства форматирования nsdate ... по какой-то причине значение dateSelected неверно ... вместо "30 апреля 2011 19:55" возвращается 2011-05-01 02:55 ... любая идеячто я делаю не так?

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"h:mm a"];
objEventInsert.eventtime  = [outputFormatter stringFromDate:self.datePicker.date];
NSLog(@"%@",objEventInsert.eventtime);
NSDateFormatter *dateForm = [[NSDateFormatter alloc] init];
[dateForm setDateFormat:@"LLLL d y h:mm a"];
NSDate *dateSelected = [dateForm dateFromString:[NSString stringWithFormat:@"%@ %@",objEventInsert.eventstartdate,objEventInsert.eventtime]];
NSLog(@"%@",objEventInsert.eventstartdate);
objEventInsert.date = dateSelected;
NSLog(@"%@",objEventInsert.date);

NSLog response ...

2011-04-30 19:54:14.264 APP[24017:207] 7:55 PM
2011-04-30 19:54:16.216 APP[24017:207] April 30 2011
2011-04-30 19:54:17.654 APP[24017:207] 2011-05-01 02:55:00 +0000

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Ваша проблема в том, что вы снова создаете новую NSDate и запускаете ее только через строку. Так что либо вы должны создать строку на последнем шаге, либо вам нужно повторно использовать NSDateFormatter.

NSString *dateSelected = [NSString stringWithFormat:@"%@ %@",objEventInsert.eventstartdate,objEventInsert.eventtime];
NSLog(@"%@", dateSelected);

Примечание: можете использовать appendStringByFormat, чтобы сделать ваш код менее подробным.

1 голос
/ 01 мая 2011

Это правильное время UTC.Вам нужно установить локаль / часовой пояс, чтобы получить местное время, то есть 7: 55.

См. Эти примеры ответов

...