我根据星期几改变文本值,我能够使用字符串值来实现这一点,但我希望能够在数字值上实现 - 删除不同语言的问题。例如,如果今天是星期一做...但我想如果今天是第1天然后做。我已经尝试了下面的代码,但它给了我一个0的数值;
NSDateFormatter *dayofweekformatter = [[NSDateFormatter alloc] init];
[dayofweekformatter setDateFormat:@"E"];
NSString *DayOfWeek = [dayofweekformatter stringFromDate:[NSDate date]];
NSInteger weekDay = [DayOfWeek integerValue];
NSLog(@"The day of the week is: %d", weekDay);
是否可以这样做?
答案 0 :(得分:0)
根据this链接,“E”本身将以星期几的形式提供文本格式,即:“星期一”/“星期二”等。
如果您希望将星期几作为整数,则应使用小写“e”或“c”。
另一种实现方式是使用NSCalendar
和NSDateComponents
来确定星期几,因为这更有可能根据用户首选日历考虑不同设备的不同设置。< / p>
NSDate *date = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calendar components:NSCalendarUnitWeekday fromDate:date];
NSLog(@"day of the week: %i", [dateComponents weekday]);
答案 1 :(得分:0)
以下是Apple论坛上提出的解决方案https://discussions.apple.com/thread/1700102?start=0&tstart=0(我不是作者)
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =[gregorian components:NSWeekdayCalendarUnit fromDate:dateOfInterest];
NSInteger weekday = [weekdayComponents weekday];
// weekday 1 = Sunday for Gregorian calendar
[gregorian release];