iphone xcode json nsdate nstimeinterval

iphone - Restar dos objetos NSDate



xcode json (3)

Posible duplicado:
Cómo conseguir diferencia de tiempo en iPhone

Estoy obteniendo fecha y hora de un feed JSON. Necesito encontrar la diferencia entre la fecha que recibo del feed y la fecha y hora de hoy. ¿Alguna sugerencia de cómo puedo hacer esto?

Sé que necesito restar la fecha actual con la fecha que recibo del feed, pero no sé cómo hacerlo.

Ex:

Fecha de publicación: Date: 2011-06-10 15:00:00 +0000 Hoy: Date: 2011-06-10 14:50:00 +0000

Necesito mostrar que la diferencia es de diez minutos.

¡Gracias!


A partir del código siguiente, tendrá una idea para comparar dos objetos NSDate .

NSDate *dateOne = [NSDate dateWithString:@"2011-06-10 15:00:00 +0000"]; NSDate *dateTwo = [NSDate dateWithString:@"2011-06-10 14:50:00 +0000"]; switch ([dateOne compare:dateTwo]) { case NSOrderedAscending: NSLog(@”NSOrderedAscending”); break; case NSOrderedSame: NSLog(@”NSOrderedSame”); break; case NSOrderedDescending: NSLog(@”NSOrderedDescending”); break; }


Cree dos objetos NSDate a partir de las cadenas usando NSDate''s -dateWithString: luego obtenga la diferencia de los dos objetos NSdate usando

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1];


NSDate convertir la fecha de entrada en un objeto NSDate antes de intentar comparar.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"]; NSDate *startDate = [dateFormatter dateFromString:yourJSONDateString]; NSDate *endDate = [NSDate date]; CGFloat minuteDifference = [endDate timeIntervalSinceDate:startDate] / 60.0;

El formateador asume que el desplazamiento UTC siempre será cero. Si esto no es cierto, consulte la página de cadena de formato de fecha de Microsoft para otros códigos de formato que puede usar.

-

Edición: el método dateWithString que dateWithString todos los demás será mejor para usar en su situación, pero el formateador de fecha es necesario si la cadena de formato de fecha que está obteniendo no es exactamente correcta. No creo que alguna vez haya usado una API que envíe fechas en el formato correcto, tal vez solo tenga mala suerte :-(.