2012-01-17 3 views
1
내가 문자열 형식으로되어 있지만, 배열 내 사전 항목은 날짜와 시간을 포함 날짜 "16 Jan 2012"에 대한 사전의 내 배열을 검색 할 특정 date.Ex에 대한 사전의 내 배열을 검색 할

는 .I 문자열 형식으로 변환하고 "16 Jan 2012 somehours:somemins:somesecs" 말 있는 NSDate 형식의 날짜는하지만 .I이 "Date == CAST(348345000.000000, "NSDate")"을 다음과 같이 초에 날짜를 변환 날짜를 검색하고 내 기록이이 기준을 만족하지 않습니다 "16 Jan 2012 somehours:somemins:somesecs"로 날짜를 포함하더라도 그렇게 비교하는 자 NSPredicate를 사용하고 2012-01-15 18:30:00 +0000 대신 2012-01-16으로 날짜를 얻고있다. "16 Jan 2012 somehours:somemins:somesecs"으로 날짜를 포함하는 레코드/배열에 검색 기준을 만족시켜야합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?NSString을 NSDate로 변환하는 방법은 무엇입니까?

미리 감사드립니다.

답변

0

너의 시간대에 맞게 NSDateFormatter의 자동 조정을 스스로 제거하려면 다음과 같이하십시오.

dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 

; "16 Jan 2012"시간, 분 또는 초 값이 포함되어 있지 않으므로 NSDateFormatter으로 구문 분석 할 때 "2012-01-16 00:00:00 +000"의 설명이있는 NSDate를 기대할 수 있습니다. 그러나 날짜 포맷터가 5 : GMT와 인도 사이 30 시간? (가정 : 30 차동). 날짜 포맷터의 시간대를 명시 적으로 설정하면이 문제를 피할 수 있습니다.

+0

감사합니다 NJones,이 문제는 처음 해결되었습니다. 그러나 여전히 저는 아닙니다. 이것을 위해 무엇을해야하는지 : NSPredicate를 사용하여 날짜를 초로 변환하는 날짜를 검색합니다. "Date == CAST (348345000.000000,"NSDate ")"내 레코드에 날짜가 "16 Jan 2012 somehours : somemins : somesecs "조건을 만족하지 않을 것입니다. 나는"16 Jan 2012 somehours : somemins : somesecs "라는 날짜를 포함하는 레코드/배열에 검색 기준을 만족시켜야합니다. 누구나이 방법을 알 수 있습니까? –

0

NSDateFormatters를 사용하여 날짜 문자열을 한 형식에서 다른 형식으로 변환해야합니다. dateFromString을 사용하여 NSDate를 제공 ​​한 다음 원하는 문자열을 제공하는 outputDateFormatter에이 필드를 제공하는 inputDateFormatter를 사용할 수 있습니다.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd MMM yyyy"]; 
NSString *dateInFormatYouWant = [dateFormatter stringFromDate:yourDate] 

이보다 효율적인 방법이 있는지 확실하지 않습니다.

+0

나는 OP가 Timezone에 문제가 있다고 느낍니다. OP가 날짜를 가져올 수 있지만 전환으로 인해 시간대가 표시됩니다. 예를 들어 시간이 16 jan 00:00 인 경우 시간대가 5시 30 분에서 뺀 다음 결과 날짜는 15 일이며 시간은 18:30입니다 –

관련 문제