我正在尝试在iPhone中获取周数。我正在使用这段代码
NSNumber* getWeek() {
NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"w.ee"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
NSNumberFormatter *weekNumber = [[NSNumberFormatter alloc] init];
[weekNumber setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *week = [weekNumber numberFromString:dateString];
[weekNumber release];
return week;
}
然而,我有不同的结果,在模拟器上是可以的,但当我在iPhone上运行时,这让我"0"IOS 5.0.1
有什么帮助吗?
使用字符串表示周数并不是获取此类信息的最佳方式。NSCalendar
和NSDateComponents
是专门为这种计算设计的:
NSDate *currDate = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:NSWeekOfYearCalendarUnit|NSWeekdayCalendarUnit fromDate:currDate];
NSLog(@"%d %d", components.weekOfYear, components.weekday);
您可以在日历调用(第3行)中指定组件列表,如示例所示。注意,只有指定的组件才能保证在NSDateComponents
对象中填充。