2010-07-13 3 views
0

Я создаю приложение, которое нужно запустить на 10.4 и выше. Очень важно иметь строку даты, которая отформатирована правильно. Когда я запускаю свою программу в отладке 10.5, все хорошо; Я получаю дату, которая точно так же, как я хочу:Проблемы с NSDateFormatter между версиями 10.4 и 10.5

Jul 13, 2010 16 

16, являющийся часом без минут, который мне особенно нужен. Затем, когда я запускаю его в 10.4 я получаю это:

07/13/10 

Мой код, чтобы произвести эту дату выглядит следующим образом:

NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
    [format setDateFormat:@"MMM dd, yyyy HH"]; 

    NSDate *newNow = [[NSDate alloc] init]; 
    NSString *dateString = [format stringFromDate:newNow]; 

После прочтения некоторой соответствующей документации (ссылка ниже), похоже, 10,4 имеет уникальный способ форматирования, который отличается от 10.3, 10.5 и 10.6. Процитировать ссылку:

«Строка формата использует шаблоны формата из стандарта Unicode (эта ссылка относится к версии tr35-6 для Mac OS X v10.5, для Mac OS X v10.4 используется версия tr35-4) «.

Я просмотрел документацию, и, похоже, мой формат Unicode в порядке, но я все еще получаю этот нечетный результат.

Любая помощь?

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

ответ

0

Я думаю, что вам нужно, чтобы установить поведение форматтера в NSDateFormatterBehavior10_4 с помощью +[NSDateFormatter setDefaultFormatterBehavior:] или -[NSDateFormatter setFormatterBehavior:].

EDIT: мои рассуждения основаны на комментарий в обзоре NSDateFormatter говоря:

По умолчанию на Mac OS X v10.4 экземпляры NSDateFormatter имеют такое же поведение, как они делали на Mac OS X версии от 10,0 до 10,3. В Mac OS X v10.5 и более поздних версиях NSDateFormatter по умолчанию соответствует поведению 10.4+.

+0

Это абсолютно трюк. Для любого другого, кто должен попробовать это, я бы добавил, что вам нужно разместить // [NSDateFormatter setDefaultFormatterBehavior: NSDateFormatterBehavior10_4]; перед всем остальным, включая ресурсы alloc и init. –

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