2014-04-22 4 views
-1

나는 데이터베이스에서 두 개의 날짜를 비교하려고하는데 다른 하나는 시스템의 현재 날짜입니다. 데이터베이스의 날짜가 문자열로 분석되고 싶습니다. NSDate으로 변환하십시오. 내가 직면 한 문제는 NewsDatenil 인 것입니다.두 날짜 비교 (현재 날짜와 데이터베이스 날짜)

-(void)viewDidLoad 
    { 

    // Do any additional setup after loading the view. 
    self.title=self.ntitle; 
    _lblDate.text=self.ndateNews; 
    _lblDetail.text=self.ndetails; 
    _lblTitre.text=self.title; 
    NSDate *currDate=[NSDate date]; 
    NSDateFormatter *DateFormats=[[NSDateFormatter alloc ]init]; 
    [DateFormats setDateFormat:@"MM-DD-yyyy hh:mm:ss +EEEE"]; 
    NSLog(@"selected date %@",self.ndateNews); 
    NSDate *NewsDate=[DateFormats dateFromString:self.ndateNews]; 
    NSLog(@"string transformed into date %@",NewsDate); 
    NSLog(@" system date %@",currDate); 



    if ([currDate isEqualToDate:NewsDate]){ 

     [email protected]"today"; 

    } 

} 
+0

'NewsDate'는'self.ndateNews'를'nil'으로 올바르게 구문 분석 할 수 없습니다 - 아마도 MM-DD와 같은 형식이 아닙니다. -yyyh hh : mm : ss + EEEE'라고 표시됩니다. 'NSLog (@ "% @", self.ndateNews)는 무엇을합니까? – Rich

+0

또한 'EEEE'는 [형식 문서] (http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns) – Rich

+0

2014-04-16T00에 따라 * 주간 * 동안입니다. : 00 : 00 + 03 : 00 – kassar

답변

1

잘못된 날짜 형식 패턴 see this page for info을 사용하고 있습니다.

yyyy-MM-dd'T'HH:mm:ssZZZZZ 

원하는 날짜 형식입니다. 또한

당신이 NewsDate 오늘 당신은 사용해야 있는지 확인하려면 다음

BOOL today = [[NSCalendar currentCalendar] isDateInToday:NewsDate]; 

확인 날짜가 NSDate date 동일한 경우 날짜가 일치 정확히에있을 거라고 것 - 밀리 초에 이르기까지 !

-isDateInToday:입니다. iOS 7 만입니다. iOS 6에서도 작동하는 버전을 원하신다면 저에게 의견을 남겨주세요 :)

+0

고맙습니다. 매우 도움이되었습니다. – kassar

+0

문제 없음 - 오늘도이 문제와 관련하여 도움을 받으시기 바랍니다. – Rich

+1

'- (BOOL) isDateInToday : (NSDate *) date NS_AVAILABLE (10_9, 8_0); 'iOS 8에서만 사용할 수 있습니다. – bubuxu