2009-12-11 2 views
4

Я хотел бы отображать только день и месяц даты. В основном NSDateFormatterLongStyle, но без года.iPhone SDK - NSDateFormatter день + месяц

Проблема, с которой я столкнулся, - это локализация. В английской версии он должен показать, например, «14 января» и на французском «14 Janvier».

Есть ли простой способ распечатать такие даты? Или у меня есть инструкции ifelse для проверки текущей локали и установки дня до или после месяца?

Заранее за вашу помощь.

ответ

2

Заканчивать this question..... У меня была такая же проблема раньше, но решить ее с помощью dateFormat не dateStyle

+0

Спасибо, Мадхуп. Я уже ответил на свой вопрос и разместил ссылку на этот ответ. – nicoko

-1

Кажется, что если/else будет недостаточно для того, чтобы поймать каждый случай. Я бы использовал стиль NSDateFormatterLong, а затем просто нашел/заменил, чтобы удалить год из строки.

+0

Спасибо Ed за ответ. Проблема в том, что годы могут отличаться. Конечно, я мог бы найти 4 цифры и удалить их. Прежде чем внедрять этот хак, вы уверены, что нет более легкого решения? – nicoko

+0

Прочитайте ответ nicoko, это относится к методу удаления года из строки форматирования, специфичной для локали, а не к строкам даты форматирования. –

1

Эта функция выглядит как это поможет вам большую часть пути туда, если не все ...

+ (NSString *)dateFormatFromTemplate:(NSString *)templateoptions:(NSUInteger)optslocale:(NSLocale *)locale 

http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/clm/NSDateFormatter/dateFormatFromTemplate:options:locale:

«Различные локали имеют различные соглашения для упорядочения даты компонентов. Вы можете использовать этот метод позволяет получить соответствующую строку формата для заданного набора компонентов для определенного языка (обычно вы используете текущую локаль - см. currentLocale). "

Я думаю, что если вы используете их пример, просто удалить у из

NSString *dateComponents = @"yMMMMd"; 

и это даст вам строку без года части для данной местности

+0

К сожалению, это характерно для рабочего стола и недоступно для iPhone версии NSDateFormatter. –

+0

Слишком плохо, это решение было бы идеальным! Спасибо Eld за ваш ответ. – nicoko

+0

Извините, не заметил, что эта функция не для iPhone = ( – Eld

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