Fechas y horas en Objective-C

Las clases NSDate y NSDateFormatter proporcionan las características de fecha y hora.

NSDateFormatter es la clase auxiliar que permite una fácil conversión de NSDate a NSString y viceversa.

A continuación se muestra un ejemplo sencillo para mostrar la conversión de NSDate a NSString y de nuevo a NSDate.

#import <Foundation/Foundation.h>

int main() {
   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
   NSDate *date= [NSDate date];
   NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
   [dateFormatter setDateFormat:@"yyyy-MM-dd"];
   
   NSString *dateString = [dateFormatter stringFromDate:date];
   NSLog(@"Current date is %@",dateString);
   NSDate *newDate = [dateFormatter dateFromString:dateString];
   NSLog(@"NewDate: %@",newDate);
   
   [pool drain]
   return 0;
}

Ahora, cuando compilemos y ejecutemos el programa, obtendremos el siguiente resultado.

2013-09-29 14:48:13.445 Date and time[870] Current date is 2013-09-29
2013-09-29 14:48:13.447 Date and time[870] NewDate: 2013-09-28 18:30:00 +0000

Como podemos ver en el programa anterior, obtenemos la hora actual con la ayuda de NSDate.

NSDateFormatter es la clase que se encarga de convertir el formato.

El formato de la fecha se puede cambiar según los datos disponibles. Por ejemplo, cuando queremos agregar tiempo al ejemplo anterior, el formato de fecha se puede cambiar a @ "yyyy-MM-dd: hh: mm: ss"