簡體   English   中英

weekOfYear無效

[英]weekOfYear not working

我最近將Xcode更新到6.0版,這樣做時,我被警告不要使用NSDateComponents week方法,而新的weekOfYear方法將其替換。 我相信這些方法應該返回一年中的第幾周,介於1到52之間。但是,我獲得的weekOfYear值遠超過52。

我用來測試的代碼如下。 有人可以幫我驗證一下嗎,如果我做錯了什么,請告訴我那是什么?

- (void)testWeekOfYearMethod
{
    NSLog(@"Inside testWeekOfYearMethod...");

    NSDate *date = [NSDate date];

    //NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSCalendar *gregorian = [NSCalendar currentCalendar];

    NSDateComponents *weekdayComponents = [gregorian components:NSWeekCalendarUnit fromDate:date];

    NSInteger weekOrdinal = [weekdayComponents weekOfYear];

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];

    NSString *formattedString = [dateFormatter stringFromDate:date];
    NSLog(@"In getWeekContainingDate(), Date: %@ has week %ld", formattedString, [[NSNumber numberWithInteger:weekOrdinal] integerValue]);
}

weekOfYear只是訪問您創建的NSDateComponents的相應部分。 您的示例未指定選項NSWeekOfYearCalendarUnit ,因此無法訪問!

將其添加到您的選項中,您將獲得預期的結果:

NSDateComponents *weekdayComponents = [gregorian components:(NSWeekCalendarUnit | NSWeekOfYearCalendarUnit) fromDate:date];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM