2010-06-04 5 views
6

1 개의 레이블에 2:01:20 PM 형식이 있습니다. 일부 계산 후에는 해당 레이블의 시간 및/또는 분을 변경해야합니다.프로그래밍 방식으로 nsdate에서 시간 분을 설정하는 방법은 무엇입니까?

즉, 레이블 값을 NSDate 객체로 변환하고 3:20:30 PM처럼 시간과 분을 수정하여 변경할 수 있습니까?

설정 도구가 있습니까?

+0

내가 [문자열 1의 replaceCharactersInRange 사용하는 경우 : NSMakeRange (0.5) withString를 : NSString stringWithFormat : @ "% d : 0 % d",시, finalMinute] 분이 10보다 작 으면 01,02,03 ....으로 추가 조건을 확인해야합니다. 9 오후 12시 3 분 23 초 때문에 범위를 변경해야합니다 ..... – mac

답변

1

특정 실제 인스턴스를 시간적으로 계산해야하는 경우. 3:20:30 PM 2010 년 10 월 23 일, 그러면 NSCalendar를 사용하여 날짜를 분해하고 날짜 관련 계산을 수행 할 수 있습니다.

경고 문구. 날짜 및 시간 계산은 놀랍도록 복잡하고 세밀합니다. API를 배우는 데 몇 시간을 소비 할 것으로 예상됩니다.

+0

내 코드는 입니다.3210 NSDateFormatter * timeFormatter = [[[NSDateFormatter alloc] init] autorelease]; \t [timeFormatter setDateStyle : NSDateFormatterNoStyle]; \t [timeFormatter setTimeStyle : NSDateFormatterMediumStyle]; \t NSDate * stringTime = [NSDate date]; \t NSString * formattedDateStringTime = [timeFormatter stringFromDate : stringTime]; \t \t // NSLog (@ "시간 문자열은 % @", formattedDateStringTime); \t \t time.text = formattedDateStringTime; 여기에, 내 문제는 내가 시간을 변경해야합니다 시간, 분, 그래서 만약 내가 너무 쉽게 하드 TechZen 다른 클래스를 위의 의견을 따르십시오. 감사합니다. 빠른 답변을 위해. – mac

25

? "프로그래밍 방식으로있는 NSDate에 시간 분을 설정하는 방법 "당신의 첫 번째 질문 에 대한 답은 다음입니다 :

NSDate* result; 
    NSDateComponents *comps = [[NSDateComponents alloc] init]; 
    [comps setMinute:0]; 
    [comps setHour:0]; 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    result = [gregorian dateFromComponents:comps]; 
    [comps release]; 
+0

날짜를 "0001-01-01"로 지정합니다. 현재 날짜를 설정하는 방법? – Satyam

+1

이것은 컴포넌트에서 현재 날짜를 설정하는 방법입니다 :'NSDateComponents * components = [calendar components : NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate : [NSDate date]];' – iBug