La date del selector de date con formatting de cadena está desactivada

Tengo un UIDatePicker que solo tiene mes, día y año. Estoy tratando de mostrar esta date seleccionada en un TextField usando este código:

-(IBAction) dateChanged:(id)sender { NSDate *date = datePicker.date; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"M/d/YYYY"]; expirationDateField.text = [df stringFromDate:date]; [df release]; } 

Para la mayoría de las dates, esto funciona, pero por alguna razón, cuando selecciono el 1 de enero de 2009 o el 2 de enero de 2009, termino recibiendo "1/1/2008" o "1/2/2008" (esto no es específico para 2009). Pensé que era un problema de zona horaria, pero no mostraría el año equivocado para el 2 de enero si ese fuera el caso. ¿Algunas ideas?

Use minúsculas yyyy para el año.

La mayúscula YYYY devuelve el año del inicio de la semana en que cae la date.
Consulte Patrones de formatting de date Unicode .