2012-07-25 2 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; 
} 

그러나이 코드 조각을 사용하고,하지만 난 아이폰에서 실행할 때이 나에게 "0" IOS 5.0.1 어떤 도움이

있어?

+0

이 코드는 실제 장치에서 완벽하게 작동합니다. 나는 당신의 진짜 문제가이 방법 안에 있지 않다고 생각합니다 ... – holex

+0

당신의 아이폰에 설정된 날짜를 확인 했습니까? –

답변

2

주 번호로 문자열을 사용하는 것이 이러한 종류의 정보를 얻는 가장 좋은 방법은 아닙니다. 당신은 지정된 구성 요소가 보장되는 예를 노트에서 볼 수 있듯이 달력 호출 (라인 3)의 구성 요소 목록을 지정할 수 있습니다

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); 

: NSCalendarNSDateComponents는 계산이 종류를 위해 특별히 설계되었습니다 NSDateComponents 개체에 채워집니다.

+0

앱이 전 세계에서 사용되는 경우 가능한 시간대 문제도 처리해야합니다. – markjs