도트 넷 형식으로 수신되는 두 날짜 간의 차이를 가져오고 싶습니다. 날짜를 NSDate
으로 변환했습니다. 그러나 날짜 사이의 정확한 차이 (시간, 분 및 초 필드가 0 임)를 얻을 수 없습니다. 아래의 방법을 사용하고 있습니다. 두 날짜 사이의iOS의 Facebook 댓글과 같은 날짜의 차이 가져 오기
- (NSString*)calculateTimeFromDate :(NSDate*)date {
NSDate *createdDate;
NSDate *todayDate;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:SS"];
NSString *str = [formatter stringFromDate:date];
NSString *str1= [formatter stringFromDate:[NSDate date]];
createdDate = [formatter dateFromString:str];;
todayDate = [formatter dateFromString:str1];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags
fromDate:createdDate
toDate:todayDate options:0];
NSInteger timeDifference = [components day];
int days = timeDifference;
NSString *timeStr;
if(days>0) {
if(days == 1) timeStr = [NSString stringWithFormat:@"%.0i %@",days, LString(@"DAY")];
else timeStr = [NSString stringWithFormat:@"%.0i %@ ",days, LString(@"DAYS")];
} else {
int hours = [components hour];
if(hours >0){
if(hours ==1) timeStr = [NSString stringWithFormat:@"%.0i %@",hours, LString(@"HOUR")];
else timeStr = [NSString stringWithFormat:@"%.0i %@",hours, LString(@"HOURS")];
} else {
int minutes = [components minute];
if(minutes>0) {
if(minutes ==1) timeStr = [NSString stringWithFormat:@"%.0i %@",minutes, LString(@"MINUTE")];
else timeStr = [NSString stringWithFormat:@"%.0i %@",minutes, LString(@"MINUTES")];
} else {
int seconds =[components second];
if(seconds >5) timeStr=[NSString stringWithFormat:@"%.0i %@",seconds, LString(@"SECONDS")];
else timeStr = LString(@"JUST_NOW");
}
}
}
if(![timeStr isEqualToString:LString(@"JUST_NOW")]) timeStr = [timeStr stringByAppendingFormat:@" %@", LString(@"AGO")];
NSLog(@"%@",timeStr);
return timeStr;
}
위의 메서드에서 * str, * str1 정확한 시간과 날짜가 있지만 구성 요소에서 정확한 날짜를 가져올 수 없습니다. 나에게 주어진 실제 날짜는 날짜 (1377216000000)입니다. ur 대답을 제안하십시오 ... – arunit21
-1 그래서 질문은 당신이 게시 한 코드에 관한 것이 아니라 어떻게 NSDate에'Date (1377216000000)'을 돌리는가에 관한 것입니까? 어쩌면 당신은 그 질문을 했어야합니다. 게시 한 코드가 잘 작동합니다. –
날짜를 nsdate 형식으로 변환했습니다. 그러나 날짜를 nslogging하는 동안시 분 구성 요소는 0입니다. 시간과 분, 초를 볼 수있는 날짜 객체에 브레이크 포인트와 호버 커서를 설정할 때. 정확한 문제는 무엇입니까? – arunit21