2013-07-10 4 views
2

stackoverflow에 대한 일반적인 질문은 어떻게 날짜에서 연말을 얻는가이지만 어떻게 일을하는 날로부터 날짜를 얻는가?iOS 일의 년 월 일부터

다음 코드를 사용하여 Day of Year를 생성하지만 그 반전을 수행하는 방법은 무엇입니까?

// Calculate Day of the Year 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    NSUInteger dayOfYear = [gregorian ordinalityOfUnit:NSDayCalendarUnit inUnit:NSYearCalendarUnit forDate:[NSDate date]]; 
    setDayOfYear = dayOfYear; 
    return setDayOfYear; 

답변

1

가정하면 올해 당신이 원하는 알고 날짜의 실제 시간은 중요하지 않습니다 그리고 당신은 방금 구성 요소에서 올해의 일, 연도를 변환 할 수 있습니다, 올바른 로케일 및 시간대가 설정 한 다시 날짜로. 다시 말하지만, 애플리케이션이 시간 구성 요소에 대해해야 할 일을 결정할 필요가있을 수 있으며 일과 년이 실제로 캘린더에 대해 의미가 있음을 확인해야하지만 예에 나열된 그레고리력을 가정하고 200 일 2013 (2013년 7월 19일), 당신은 그래서이 같은 수 있습니다 :

NSDateComponents* components = [[NSDateComponents alloc] init]; 
[components setDay:200]; 
[components setYear:2013]; 
NSDate* july19_2013 = [gregorian dateFromComponents:components]; 

내 현재 로케일 내가이를 실행한다면, 나는 07:00 @ 2013년 7월 19일을의 날짜를 얻을 것 때문에 America/Los_Angeles의 시간대 equiv에서 캘린더를 구성하지 않았습니다.

관련 문제