6

日付から年の週番号を取得したい.次のコードを試しましたが、間違った週番号が返されます.

週番号の私のコード:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd"];
    NSDate *date = [dateFormatter dateFromString:@"2012-09-15"];


    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSLog(@"week: %i", [[calendar components: NSWeekOfYearCalendarUnit fromDate:date] weekOfYear]); //Display 38 instead of 37
}

注:ディスプレイで試してみると[NSDate date]、正しいです。

これを解決するのを手伝ってください..ありがとう、

4

4 に答える 4

20

目的 C:

 NSCalendar *calendar = [NSCalendar currentCalendar];
 NSDateComponents *dateComponent = [calendar components:(NSWeekOfYearCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]];
 NSLog(@"%@",dateComponent);

アップデート

 NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *dateComponent = [calendar components:(NSCalendarUnitWeekOfYear | NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:date];
    NSLog(@"%@",dateComponent);

迅速:

let calendar = NSCalendar.currentCalendar()
let dateComponent = calendar.components([.WeekOfYear, .Day, .Month, .Year], fromDate: NSDate(timeIntervalSinceNow: 0))
print("weekOfYear \(dateComponent.weekOfYear)")

スウィフト 3 - スウィフト 5:

let component = Calendar.current.component(.weekOfYear, from: Date())
print("Week of Year \(component)")
于 2013-07-11T07:50:45.053 に答える
11

[NSCalendar currentCalendar]デフォルトとしてグレゴリオ暦を提供します。使用できます

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSISO8601Calendar];

ISO 08601 準拠のカレンダーを取得するには、日付の週番号が37です。

于 2013-07-11T07:58:24.373 に答える