2012-07-25 59 views
1

我正在嘗試在iPhone中獲取星期編號。我使用這段代碼在iOS中獲取錯誤的星期編號

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

任何幫助?

+0

此代碼在我的真實設備上運行完美。我認爲你真正的問題不在於這種方法... – holex 2012-07-25 11:47:06

+0

你檢查了你的iPhone上設置的日期? – 2012-07-25 11:47:52

回答

2

使用字符串作爲週數並不是獲取此類信息的最佳方法。

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號線)指定的組件列表:NSCalendarNSDateComponents已經爲這種計算專填入NSDateComponents對象。

+0

如果應用程序將在全世界範圍內使用,請確保您也關注可能的時區問題! – markjs 2012-07-25 14:04:17