NSDateFormatter può fare questo. Tuttavia questo non funziona con i formati di data personalizzati, ma nella maggior parte dei casi quando hai bisogno di date relative che li stai presentando all'utente e you should not use hard coded date formats in primo luogo.
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.timeStyle = NSDateFormatterMediumStyle;
df.dateStyle = NSDateFormatterShortStyle;
df.doesRelativeDateFormatting = YES; // this enables relative dates like yesterday, today, tomorrow...
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:-48*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:-24*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate date]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:24*60*60]]);
NSLog(@"%@", [df stringFromDate:[NSDate dateWithTimeIntervalSinceNow:48*60*60]]);
questo stampa:
2013-06-06 09:13:22.844 x 2[11732:c07] 6/4/13, 9:13:22 AM
2013-06-06 09:13:22.845 x 2[11732:c07] Yesterday, 9:13:22 AM
2013-06-06 09:13:22.845 x 2[11732:c07] Today, 9:13:22 AM
2013-06-06 09:13:22.846 x 2[11732:c07] Tomorrow, 9:13:22 AM
2013-06-06 09:13:22.846 x 2[11732:c07] 6/8/13, 9:13:22 AM
su un dispositivo con locale tedesco questo stamperà "vorgestern" (l'altro ieri) e "Ubermorgen" (dopodomani) per il primo e ultimo appuntamento.
fonte
2013-06-06 07:14:20
Se la data di ieri quale sarà l'output. Per favore, dì cosa esattamente vuoi –
se prima di ieri è necessario mostrare la data stessa .. voglio restituire le stringhe con oggi, ieri e la data stessa .. – Ananya