Date e orari in Objective-C

Le classi NSDate e NSDateFormatter forniscono le funzionalità di data e ora.

NSDateFormatter è la classe helper che consente una facile conversione di NSDate in NSString e viceversa.

Di seguito è mostrato un semplice esempio per mostrare la conversione di NSDate in NSString e di nuovo in 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;
}

Ora, quando compiliamo ed eseguiamo il programma, otterremo il seguente risultato.

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

Come possiamo vedere nel programma sopra, otteniamo l'ora corrente con l'aiuto di NSDate.

NSDateFormatter è la classe che si occupa della conversione del formato.

Il formato della data può essere modificato in base ai dati disponibili. Ad esempio, quando si desidera aggiungere l'ora all'esempio precedente, il formato della data può essere modificato in @ "aaaa-MM-gg: hh: mm: ss"