2009-04-23 8 views
20

특정 시간을 나타내는 NSDate이 있습니다. 해당 날짜의 형식은 hhmmss입니다. 그 시간 값에 NSInterval 값 (초 단위로 지정)을 추가하고 싶습니다.NSTimeInterval을 코코아 NSDate에 추가하십시오.

예 :

NSDate =   123000 
NSTimeInterval = 3600 

Added together = 133000 

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

52

Dates and Times Programming Topics for Cocoa 설명서를 보았습니까?

기본적으로 NSDate로 시간을 변환해야합니다. 문자열을 날짜로 변환하려면 NSDateFormatter 클래스를 사용하거나 이미시, 분 및 초를 알고있는 경우 NSDateComponents을 사용하십시오.

NSTimeInterval은 단지 두 배 (즉, 3600.0)입니다.

그런 다음 NSDate의 dateByAddingTimeInterval 메서드를 사용하여 시간 (초)을 더합니다.

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0]; 

그런 다음 NSDateFormatter 또는 NSDateComponents 중 하나가 밖으로 다시, 새로운 시각을 얻을 수 있습니다.

+0

감사합니다. –

+0

addTimeInterval : iOS 4.0에서 사용되지 않습니다. dateByAddingTimeInterval을 사용하십시오. - http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html –

+0

@ SeungUnHam 사실. 대답은 iPhone OS 2.x가 최신 버전이었을 때 작성되었지만 현재 권장 사항을 반영하도록 업데이트했습니다. –

1
// This will set the time when your view appears it will also 
// set the time if you want to retrieve from it. 
-(void)viewDidAppear:(BOOL)animated 
{ 
    //Create todays date 
    NSDate *duedate = [NSDate date]; 
    //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour 
    //Then simply reassign the variable or use a different one. 
    duedate = [duedate dateByAddingTimeInterval:86400]; //I add one day 
    [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving 
    [datePicker setMinimumDate:duedate]; //Set minimum date. 
}