2010-03-16 13 views
7

Penso che la soluzione sia davvero semplice, non l'ho mai trovata online.Dato anno, mese e giorno, tutto in int, come dovrei generare un NSDate

Supponiamo che mi vengano dati anno int, mese int, giorno int, ora int, int min, int sec .. come posso generare NSDate?

So che possiamo usare [NSDate initWithString:] ma penso che si complichi se mese/giorno/ora/min/sec sono numeri di una cifra.

risposta

13

Supponiamo che mi viene data l'anno int, int mese, int giorno, int ora, int min, int sec .. come faccio a generare NSDate al di fuori di esso?

Inserire gli interi in un oggetto NSDateComponents, quindi ask an NSCalendar object to change that into a date.

+0

+1 questo è il modo corretto per farlo –

+0

+1 Lo sapevo da tanto tempo ma avevo dimenticato. Grazie! –

0

Questo here riassume molto come farlo.

//create a string that looks like this, "October 22, 2009" or whatever the values are 
NSString* d = [NSString stringWithFormat:@"%@ %@, %@", month, day, year]; 
NSDate* date = [NSDate dateWithNaturalLanguageString:d]; 

che link mostra anche altre opzioni per creare la data se non ti piace questo particolare metodo.

appena realizzato che hai detto ti sono stati forniti int ... si potrebbe fare con questo formato stringa:

[NSString stringWithFormat:@"%i/%i/%i", month, day, year]; 
+2

Ciò restituirà risultati errati in molte locale (qualsiasi dove l'ordine del giorno, del mese e dell'anno non corrisponde a come è stata creata la stringa). –

Problemi correlati