2009-09-25 3 views
1

Мне нужна дата в виде строки, но не время, и она должна быть локализована.Как я могу получить дату, но не время от NSDate

Так, например, США должны быть 25 сентября 2009 но для Новой Зеландии было бы 25 сентября 2009. Я могу получить дату в строке, указав формат «MMM dd YYYY», но не локализован.

Любые идеи?

ответ

7
[NSDateFormatter localizedStringFromDate:[NSDate date] 
           dateStyle:NSDateFormatterMediumStyle 
           timeStyle:0] 
+0

является это доступно на iPhone? как представляется, не содержится в документах NSDateFormatter, специфичных для iPhone. –

+2

timeStyle должен быть установлен в kCFDateFormatterNoStyle. Это бывает 0, но вы действительно не должны жестко кодировать константы, когда имеется указанная константа. – progrmr

3

Ключ послать setTimeStyle: kCFDateFormatterNoStyle к dateFormatter. Это устанавливает dateFormatter так, что он будет только формат даты и не выводится время:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];  
[dateFormatter setLocale: [NSLocale currentLocale]];  
[dateFormatter setDateStyle:kCFDateFormatterShortStyle]; // or whichever style... 
[dateFormatter setTimeStyle:kCFDateFormatterNoStyle]; 
NSString* dateString = [dateFormatter stringFromDate: [NSDate date]]; 

Это дает мне следующий вывод:

12/18/09 
+0

Могу ли я получить время без даты таким же образом? если да, то это не работает для меня. Когда я получаю время в NSDate, тогда мой объект остается nil – Mashhadi

+0

Он должен работать. Отправьте свой код с новым вопросом, если вы не можете заставить его работать. – progrmr

+0

http://stackoverflow.com/questions/12721553/get-time-from-nsdate-returns-nil/12721934#12721934 – Mashhadi

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