현재 날짜와 60 일 사이의 이벤트 날짜를 확인해야합니다. 아래 코드가 사용되었지만 제대로 작동하지 않습니다. 내 서버의 "2012-04-14T16 : 50 : 02Z"과 같은 이벤트 문자열이 표시됩니다.iPhone : 현재 날짜와 현재 날짜의 60 일 간의 날짜 비교 문제
// current date
double currDateInMilliSecs = [NSDate timeIntervalSinceReferenceDate] * 1000;
NSLog(@"currDateInMilliSecs: %f", currDateInMilliSecs);
// sixty days
double sixtydaysvalue = 60.0 * 24.0 * 3600.0 * 1000.0;
NSLog(@"sixtydaysvalue: %f", sixtydaysvalue);
// add current date + sixt days
double sixtyDaysMilliSecsFromCurrDate = currDateInMilliSecs + sixtydaysvalue;
NSLog(@"sixtyDaysMilliSecsFromCurrDate: %f", sixtyDaysMilliSecsFromCurrDate);
// check does the event date between current date + 60 days
NSDateFormatter *df = [[NSDateFormatter alloc] init];
//[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
//[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// [eventDict objectForKey:@"begin_at"] gives date string like this "2012-04-14T16:50:02Z" for ex.
NSDate *eventdate = [df dateFromString:[eventDict objectForKey:@"begin_at"]];
NSTimeInterval nowSinceEventDate = [eventdate timeIntervalSince1970];
NSLog(@"nowSinceEventDate: %f", nowSinceEventDate);
double eventDateInMilliSecs = nowSinceEventDate * 1000;
NSLog(@"eventDateInMilliSecs: %f", eventDateInMilliSecs);
// this is not working as expected
if (eventDateInMilliSecs<sixtyDaysMilliSecsFromCurrDate && eventDateInMilliSecs>currDateInMilliSecs)
{
}
else
{
}
어떤 방식으로 작동하지 :
문제에 대한 간단한 해결책 (여기에 우리가
eventdate
는 당신이 당신의 포맷을 사용하여 만든 날짜가된다고 가정)? – jtbandesNSDate에 대해 compare 함수를 사용합니다. – priyanka
Milli 초가 이와 같이 예기치 때문에 현재 DateInMilliSecs : 356532141059.288025가 예상대로 비교되지 않습니다. SixtyDaysMilliSecsFromCurrDate : 361716141059.288025; eventDateInMilliSecs : 1336172400000.000000은 실제로 2012-05-04 19:00:00 +0000입니다. 그래서, 실제로 60 일부터 오늘 날짜 아래에오고 있지만, 내 상태가 예상대로 작동하지 않습니다. – Getsy