3
的一週,我想從一個日期得到的NSString,像這樣的日期格式:NSDateFormatter:年首個工作日
MMEEEY ww
的問題是爲「WW」,一年的一週。我必須將這種格式與從後臺取得的另一種格式進行比較。但是後臺的第一個工作日是星期一,而iOS是星期一。所以,在星期天的時候,字符串是不一樣的,因爲一年中的那個星期不一樣。
的問題是: 如何強制NSDateFormatter使用週一首個工作日?
我試圖用firstWeekday屬性設置爲2的日曆設置NSDateFormatter的日曆屬性,但它不起作用。
這樣做的要點:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.calendar = calendar;
編輯:諾亞的答案後,試驗
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
dateFormatter.locale = locale;
dateFormatter.dateFormat = @"MMEEEY ww";
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1330251642]; // next sunday
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
dateFormatter.calendar = calendar;
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
結果:
2012-02-24 11:31:27.878 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
2012-02-24 11:31:27.880 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
感謝您的回答。我試圖做的完全一樣,但對我來說,它仍然無法正常工作......不明白爲什麼......無論如何,我們決定不使用日期格式的星期編號。奇怪的問題。 – syfonseq 2012-02-24 10:32:13