Datas e horários em Objective-C

As classes NSDate e NSDateFormatter fornecem os recursos de data e hora.

NSDateFormatter é a classe auxiliar que permite a fácil conversão de NSDate em NSString e vice-versa.

Um exemplo simples para mostrar a conversão de NSDate para NSString e de volta para NSDate é mostrado abaixo.

#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;
}

Agora, quando compilarmos e executarmos o programa, obteremos o seguinte 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 no programa acima, obtemos a hora atual com a ajuda de NSDate.

NSDateFormatter é a classe que está cuidando da conversão do formato.

O formato da data pode ser alterado com base nos dados disponíveis. Por exemplo, quando queremos adicionar tempo ao exemplo acima, o formato da data pode ser alterado para @ "aaaa-MM-dd: hh: mm: ss"