2011-10-14 4 views
0

날짜 필드가있는 문자열이 있습니다. NSString 같은 필드를 2011-12-07 21:15:00 +0000과 같은 데이터베이스에 저장하고 있습니다. 나는 날짜 형식 문자열에서 날짜를 얻기 위해 다음 코드를 사용하고문자열의 NSDateFormatter를 변경하는 방법

같은 :

NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"]; 

나는 HH A와 시간 형식 위의 날짜 형식을 원하지만 항상 null을 제공합니다. 내 코드 :

NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"]; 

    NSDateFormatter *timeFormat = [[[NSDateFormatter alloc] init] autorelease]; 
    [timeFormat setDateFormat:@"hh a"]; 

    [dateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease] ]; 
    NSDate *date1 = [dateFormat dateFromString:startSection]; 

    NSLog(@"Date 1 : %@", date1); 


    [timeFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease] ]; 
    NSDate *time1 = [timeFormat dateFromString:startSection]; 
    NSString *strSection2 = [NSString stringWithFormat:@"%@", time1]; 
    NSLog(@"Time 1 : %@", strSection2); /// always null at this place. 

나는 내가 잘못 여기서 뭐하는 거지 모르겠습니다. 아무도 나를 도와 줄 수 없나요?

+0

찾고있는 것을 의미합니다! 내가 제안한 것을 시도해 봤니? 너에게 효과가 있니? – Phlibbo

+0

안녕하세요. Phlibbo. 도움을 주셔서 감사합니다. 그러나 내 것은 단지 지금까지 찾고있는 것 이상입니다. 코드를 작성해야하는 문자열을 정렬해야합니다. – lifemoveson

+0

미안하지만 마지막으로 한 마디의 말을 이해할 수 없었습니다./ – Phlibbo

답변

0

도움이 될이 코드를 실행할 때 결과를 보여줍니다. 그러나 내가 추측해야만한다면 당신은 시간 형식 부분에서 잘못된 것을하고 있습니다. 나는 당신이 당신이 그것을 가지고 날짜 포맷을 사용하여 데이터베이스 문자열에서 날짜를 얻고, 제안 코드이 시점에서 : (나는 가정하고 작품)

[dateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease] ]; 
NSDate *date1 = [dateFormat dateFromString:startSection]; 

NSLog(@"Date 1 : %@", date1); 

스위치 기어 위의 코드 후 원하는 형식의 문자열에서 시간을 얻을 너무 대신 이렇게 : 당신은 formatString이 @"yyyy-MM-dd HH:mm:ss.S"을가는 동안

[timeFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease] ]; 
NSString * time = [timeFormat stringWithDate:date1]; 
NSLog(@"Time 1 : %@", time); 
+0

나는 그것을 할 수 있고 NSString에서 timeFormat의 값을 얻을 수있을 것이라고 확신한다. 하지만 내 걱정은 내가 잘못된 결과를주는 nsstring에 날짜를 정렬 할 때입니다. 따라서 날짜를 정렬하는 것이 정확하다는 것을 NSDate로 변경하려고했습니다. – lifemoveson

+0

위에서 작성한대로 처리 된 문자열을 정렬하거나 NSDate로 정렬하려는 항목을 구체적으로 설정하십시오. 날짜는 날짜이며, 형식은 NSDate에 아무런 영향을 미치지 않습니다. 나는 정렬에 대해 무슨 뜻인지 추측 할 수 없지만 오름차순 및 내림차순 만이 의미있는 메서드 일 것이라고 생각하는 날짜와 관련하여이 형식을 수행 할 필요가 없습니다. 시간 단위로 정렬하려면 서식을 지정한 다음 문자열을 사용하십시오. – EricLeaf

+0

시간을 혼자서 문자열로 사용한 다음 배열에 추가하여 쿼리를 실행하는 동안 정렬되어 올바르게 정렬되지 않는다는 것을 알았습니다. 배열 : {10AM, 11AM, 오전 8AM} 다음 배열 정렬을 변경하는 방법은? 현재 sortedArrayUsingSelector를 사용하고 있습니다 : @selector (비교 :). – lifemoveson

0

귀하의 날짜는 2011-12-07 21:15:00 +0000 간다. ss.S이 문제입니다. 그것을 @"yyyy-MM-dd HH:mm:ss +S"으로 만들면 효과가 있습니다.

시간 형식에 관해서, 나는 당신이하는 일을 잘 모르고있다. 당신은 분명히 hh a 가까이 보이지 않는 그것 (startSection)에 동일한 문자열을 전달하고 있습니다.

업데이트 : 착각하고 있지 않다 경우 아, 그리고, 포맷이 this conventions 다음 당신은 아마 Z과하지 안녕 S.

관련 문제