2013-08-12 2 views
5

Se si dispone di un oggetto NSDate, come è possibile formattare una NSString per produrre solo le prime 3 lettere del giorno (come lunedì, martedì, mercoledì, giovedì, venerdì, domenica, domenica) e le prime 3 lettere del mese (gen, feb, mar, apr, mag, giu, lug, ago, set, ott, nov, dic)?Formattazione di un NSDate con nomi mese/giorno abbreviati

Attualmente sto usando questo NSDateFormatter:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
     dateFormatter.dateFormat = @"MMMM dd yyyy"; 

     NSDate *date = ... 
     NSString *dateString = [dateFormatter stringFromDate:date]; 

     NSLog(@"dateString: %@",dateString); 
     // outputs August 09 2013 
     // I would like the output to be Fri, August 9 

Modifica

Ho anche provato con il NSDateComponent ma mi chiedo se c'è qualche scorciatoia per ottenere le abbreviazioni ...

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:date]; 
+2

Hai visto gli specificatori di formattazione della data? Vedi http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns – rmaddy

+0

@rmaddy grazie signore. Non sapevo che la documentazione esisteva. si riferirà ad esso d'ora in poi. –

+0

Guarda i documenti di riferimento per 'NSDateFormatter'. C'è un link a "formattatori di dati" che a sua volta ha un link per "formattatori di date" che ha finalmente un link alla pagina a cui ho fatto riferimento. È molto ovvio;) – rmaddy

risposta

10

Come per il collegamento gentilmente fornito da rmaddy, @"EEE, MMM d"; è la soluzione