iOS 4.2 DateFormatter - PullRequest
       2

iOS 4.2 DateFormatter

1 голос
/ 06 февраля 2011

Следующий код работал в моем приложении до iOS 4.2.

NSString *sunday = @"2011-03-13 20:15 -04:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm Z"];
NSDate *myDate = [dateFormatter dateFromString:sunday];

NSLog(@"sunday: %@ myDate: %@ fromNow: %d", sunday, myDate, [myDate timeIntervalSinceNow]);

Выходы:

sunday: 2011-03-13 20:15 -04:00 myDate: (null) fromNow: 0

Что я здесь не так делаю? myDate - это null. Есть ли что-то в dateFormmater, что изменилось, и мне не хватает. Я полагаю, что в данный момент это что-то тривиальное, так как я смотрю на это ...

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Если я правильно понимаю проблему, спецификатор Z анализирует "-0400" и "GMT-04: 00", а не "-04: 00". UTS # 35 , кажется, подтверждает это.В моих тестах, тем не менее, он даже анализировал «GMT-0400».Так что «-04: 00» действительно выглядит как единственный формат часовых поясов, который NSDateFormatter отказывается понимать.

Могу ли я цинично предложить репортер ошибок Apple в качестве ответа?

0 голосов
/ 06 февраля 2011

Попробуйте процитировать ваши тире, например:

  @"yyyy'-'MM'-'dd HH':'mm Z"

Мое лучшее чтение здесь: http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns, кажется, предполагает, что это действительно требуется, хотя я, кажется, вспоминаю, что использовал тот же самый шаблон форматирования даты в прошлом для iOS без проблемы.

...