2015-07-14 4 views
0

мне нужно, чтобы получить все дни недели в их коротком режиме, как это:NSDate получить все короткие дни недели?

sun,mon,etc .. 

Я попытался это:

NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]]]; 
[df setDateFormat:@"c"]; 

Который всегда дает полные имена, как бы вы получите короткие?

ответ

6
NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
NSArray * shortWeeks = [formatter shortWeekdaySymbols]; 
NSLog(@"%@",shortWeeks); 

Вход

2015-07-14 17:25:31.470 NewOcTest[9016:286325] (
Sun, 
Mon, 
Tue, 
Wed, 
Thu, 
Fri, 
Sat 
) 

Кроме того, есть также veryShortWeekdaySymbols в dateFormatter

NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
NSArray * shortWeeks = [formatter veryShortWeekdaySymbols]; 
NSLog(@"%@",shortWeeks); 

Вход

2015-07-14 17:30:30.686 NewOcTest[9073:290513] (
S, 
M, 
T, 
W, 
T, 
F, 
S 
) 
+0

oh great! работал! Благодарю. – Curnelious

1

Одним из вариантов является использование ccc

[df setDateFormat:@"ccc"]; 

Автономные местный день недели - Используйте одну букву для локального числового значения (так же, как «е»), три за короткий день, четыре для полного имени, пять для узкого имени или шесть для короткого имени.

См unicode docs

В качестве альтернативы использовать eee или E - не уверен, что именно эти различия.

День недели - используйте короткие буквы в течение короткого дня или четыре для полного имени, пять для узкого имени или шесть для короткого имени.

или

Местный день недели. То же, что и E, кроме добавления числового значения, которое будет зависеть от местного начального дня недели, используя одну или две буквы. В этом примере понедельник - первый день недели.

+0

спасибо, но он по-прежнему не работает в моей конфигурации (смена c на ccc все равно дает полные имена) – Curnelious

+0

@ Необычный вопрос о 'eee' или' E'? – luk2302

+0

он хочет дни недели AFAICS .. не календарный номер недели –

1

день недели в коротком стиле 3-полукокса как 'Mon', 'Вт', 'ср', ...

NSDate *date = [NSDate date]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"EEE"]; 
NSString *strDate = [formatter stringFromDate:date]; 

ИЛИ (для кода)

NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[[NSLocale preferredLanguages] objectAtIndex:0]]]; 
[df setDateFormat:@"EEE"]; 
1

использование shortWeekdaySymbols, это дает массив имен

#import <Foundation/Foundation.h> 

int main(int argc, char *argv[]) { 
    @autoreleasepool { 
     NSDateFormatter * df = [[NSDateFormatter alloc] init]; 
     NSLog(@"%@ \n OR \n %@", df.weekdaySymbols, df. df.shortWeekdaySymbols); 
    } 
} 

нет необходимости использовать какие-либо форматирования, за исключением, если вы на самом деле не ищет недели, но за одну дату: How do I get the day of the week with Cocoa Touch?

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