我正在尝试在我的应用中确定一周中的当前日期。要做到这一点,我有:
NSDateFormatter* dayDateFormatter = [[NSDateFormatter alloc] init];
[dayDateFormatter setDateFormat:@"e"];
int todayDayNum = [[dayDateFormatter stringFromDate:[NSDate date]] intValue];
[dayDateFormatter release];
NSLog(@"%d", todayDayNum);
今天是我的星期四,在我的iPhone上我得到的值为4
。但是,在模拟器上我得到5
。
我做错了吗?我已经尝试了c
和e
作为格式字符串。我还在模拟器和设备上仔细检查了日期/时间是否正确(和相同)。
编辑:我已将我的代码更改为以下内容,现在似乎一致地工作(我的设备和模拟器都得到5
。我猜这是因为我的设备正在使用其他日历?
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [gregorian components:(NSWeekdayCalendarUnit) fromDate:[NSDate date]];
NSInteger todayDayNum = [weekdayComponents weekday];
NSLog(@"%d", todayDayNum);
答案 0 :(得分:0)
尝试玩 [gregorian setFirstWeekday:1]; //星期日== 1,星期六== 7等
或locale - [gregorian setLocale:[NSLocale currentLocale]]; 因为它也影响了