NSDate获得一周的所有短日照?

时间:2015-07-14 09:17:42

标签: ios objective-c nsdateformatter

我需要在他们的简短模式中获得一周中的所有日子,例如:

sun,mon,etc ..

我试过这个:

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

哪个总是给出全名,你怎么得到短名?

4 个答案:

答案 0 :(得分:7)

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
)

答案 1 :(得分:2)

一种选择是使用ccc

[df setDateFormat:@"ccc"];
  

独立的当地日期 - 使用一个字母表示本地数字值(与“e”相同),三个表示短日期,四个表示全名,五个表示缩写名称,或六个表示短名称名。

请参阅unicode docs

或者使用eeeE - 不确定区别是什么。

  

星期几 - 短日内使用一到三个字母,全名使用四个字母,窄名称使用五个,短名称使用六个。

  

当地的星期几。与E相同,但使用一个或两个字母添加一个数值,该值将取决于一周的本地开始日期。对于这个例子,星期一是一周的第一天。

答案 2 :(得分:1)

一周中的简短3-char风格,如'Mon','Tue','Wed',......

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"];

答案 3 :(得分: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?