2012-09-27 2 views
4

내 문제는 내 IOS 응용 프로그램에서 시간과 같은 시간을 (날짜없이) 표현할 수있는 방법이 필요합니다. REST API에서 나는 "13:12:11"과 같은 문자열을 얻습니다. 어떤 일이 발생하는지 보여 주며, NSDateFormatter을 사용하여 NSString을 NSDates로 변환했지만, 지금까지는과 같은 시간 구성 요소로 날짜 형식을 허용하지 않는다고 말할 수 있습니다. [편집 할 수 있습니다, 아래 참조하십시오]NSDate하지만 NSTime 없음, 시간의 문자열 표현을 변환하는 방법 (날짜 없음)

그래서 내 질문은 있습니다 1- NSTimeInterval (NSDate 대신) 내가 시간을 저장하는 데 사용해야합니다 있습니까?
2 내장 된 프레임 워크 중 하나에서 "03:04:05"와 objective-c 개체를 어떻게 변환 할 수 있습니까?

는 편집 : 당신은 같은 형식을 사용할 수 있습니다 "HH : MM : SS를"그것은 단지 아직이 일 표현의 날짜 독립적 인 시간을 가지고 아주 좋은 것 2000-01-01 와 날짜 부분을 대체합니다.

+0

희망이 있으면 도움이 될 것입니다. 이 게시물은 날짜가 문자열을 가질 수있는 방법을 보여줍니다. [1] : http://stackoverflow.com/questions/936969/nsdate-and-nsdateformatter-short-format-date-and-time-in-iphone- sdk – Pitono

+0

하루의 시간이라면 날짜를 나타내거나 저장하는 것이 의미가없는 것처럼 보입니다. 사용 된 가치는 무엇입니까? 사용자에게 어떻게 표시됩니까? –

+0

특정 시간에 시작 또는 종료하는 것보다 카운트 다운 타이머를 사용하지 않는 것이 좋습니다 (날짜 관련 없음, 매일 발생). 날짜에 독립적 인 시간을 많이 사용하는 사례가 있습니다. 왜 'NSTime'이 없는지 아십니까? – Ali

답변

6

확인, 덕분에 모든 사람들이 내가하고 결국 무엇을 :

NSString * timeAsString = "12:26:07"; 
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"HH:mm:ss"]; 
NSDate * dateZero = [dateFormatter dateFromString:@"00:00:00"]; 
NSDate * dc = [dateFormatter dateFromString:timeAsString]; 
NSTimeInterval startTime = [dc timeIntervalSinceDate:dateZero]; 

그것은 우아한 해결책 아니지만, 적어도 내가 무엇을해야하는지에 대해 작동

4

NSDateComponent을 사용하여 시간을 기준으로 날짜를 만들 수 있습니다. 현재 날짜 또는 미래/과거 날짜를 기준으로 연도에 값을 추가 할 수 있습니다.

NSDateComponents *component=[[NSDateComponents alloc] init]; 
[component setHour:yourHour]; 
[component setMinute:yourMinutes]; 
[component setYear:yourYear]; 
[component setMonth:yourMonth]; 
[component setDay:yourDaty]; 
NSCalendar *calendar=[NSCalendar currentCalendar]; 
NSDate *date=[calendar dateFromComponents:component]; 
+0

'NSTime'이 무엇인지 아십니까? – Ali

+0

왜 NSTime이 필요합니까? – J2theC

0

NSDate * myDateVariable;

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterNoStyle]; //Not shown 
[someDateLabel setText:[dateFormatter stringFromDate:[myDateVariable]]]; 

//OR FOR BESPOKE FORMATTING 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"'Due' EEEE d MMM yyyy, h:mm a"]; 
[someDateLabel setText:[dateFormatter stringFromDate:[myDateVariable]]]; 

//Time using users 24/12 hour preference: 
[dateFormatter setDateFormat:@"HH:mm"]; 

//Time using 12 hour AM/PM format: 
[dateFormatter setDateFormat:@"h:mm a"]; 

//Day and date using abbreviated words: 
[dateFormatter setDateFormat:@"' ('EEE d MMM yyyy')'"]; 

//Day and date using full words: 
[dateFormatter setDateFormat:@"' ('EEEE d MMMM yyyy')'"];