2016-08-03 1 views
-5

NSString을 "2300"과 같은 NSDate 형식으로 변환하려고합니다. (주 : 23 후 콜론 없음).NSString (예 : "2300")을 NSDate (iOS)로 변환

외부 웹 서비스에서 문자열을 가져옵니다. 이 앱을 12 시간 형식으로 표시해야합니다.

이 감사합니다 :)

+0

"2300"과 같은 출력을 얻을 무엇이든 될 수 있습니다. 24 시간 형식 (hhmm)의 시간이고 NSDate로 변환 한 다음 12 시간 형식의 시간 문자열로 변환 하시겠습니까? –

+0

예 .. "2300"은 24 시간 형식의 시간입니다 –

+0

당신은이 형식 형식을 갖게됩니다 : 11:00 PM? –

답변

1

나는 세 가지 유형에 여기에 추가를 위해 날짜 열을지지 않습니다 어떤에서 당신이 선택해야 할 tyope

타입 -1

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"HHmm"]; 
[formatter setTimeZone:[NSTimeZone systemTimeZone]]; 
[formatter setLocale:[NSLocale systemLocale]]; 
NSDate *date = [formatter dateFromString:@"2300"]; 
    [formatter setDateFormat:@"hh:mm"]; 
NSString *finalDate = [formatter stringFromDate:date]; 
NSLog(@"finalDate==%@",finalDate); 

타입 -2

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init]; 
[formatter1 setDateFormat:@"HHmm"]; 
[formatter1 setTimeZone:[NSTimeZone systemTimeZone]]; 
[formatter1 setLocale:[NSLocale systemLocale]]; 
NSDate *date1 = [formatter1 dateFromString:@"2300"]; 
[formatter1 setDateFormat:@"hhmm"]; 
NSString *finalDate1 = [formatter1 stringFromDate:date1]; 
NSLog(@"finalDate1==%@",finalDate1); 

전자 -3

NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init]; 
[formatter2 setDateFormat:@"HHmm"]; 
[formatter2 setTimeZone:[NSTimeZone systemTimeZone]]; 
[formatter2 setLocale:[NSLocale systemLocale]]; 
NSDate *date2 = [formatter1 dateFromString:@"2300"]; 
[formatter2 setDateFormat:@"hh:mm a"]; 
NSString *finalDate2 = [formatter2 stringFromDate:date2]; 
NSLog(@"finalDate2==%@",finalDate2); 

enter image description here

+0

당신은 solurtion 또는 아닙니다있어 –

+0

이것은 나를 위해 작동합니다 감사합니다. :) –

+0

@AbbinVarghese - 환영합니다. –

0

내가 당신을 이해한다면 제대로 질문, 2300 실제로 23시 즉 오후 11시입니다. 그래서 먼저 문자열에서 날짜를 얻을 필요가, 당신은 점점 데이터로 생각할 수있는 유일한 방법이 것은 abizern에서 제안에 Substring

- (NSDate*) getDateFromweb:(NSString *)dateString 
{   
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 
    [dateFormatter setLocale:[NSLocale systemLocale]]; 
    [dateFormatter setDateFormat:@"HHmm"]; 
    NSDate *date = [dateFormatter dateFromString:dateString]; 

    [dateFormatter setDateFormat:@"hh:mm a"]; 
    NSString *pmAm = [dateFormatter stringFromDate:date]; 

    return pmAm; 
} 

추가 시스템 로케일 및 시간대를 사용하는 것입니다. 이 또한 4 자리 숫자

+0

이 형식은 항상 4 자리로 가정합니다. 또한 시간대 나 지역을 고려하지 않습니다. – Abizern

+0

@Abizern 100 % 테스트 케이스를 통과하는 해답을 기대하지 마십시오. 그 솔루션을 얻는 단지 sudo 코드. 사용량에 따라 최적화 할 수 있습니다. – Bonnie

+1

왜 "HH : mm"대신 "HHmm"을 사용하지 않는가? –