1

我正在尝试在 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

有什么帮助吗?

4

1 回答 1

2

使用字符串作为周数并不是获取此类信息的最佳方式。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对象中。

于 2012-07-25T12:01:34.820 回答