2011-02-23 11 views
11

Estoy tratando de tomar una fecha NSString en el formato "2/22/11" y convertirlo en este formato: 2011-02-22NSDateFormatter e yyyy-MM-dd

Este es mi código:

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
dateTemp = [dateFormat dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat stringFromDate:dateTemp]; 

newInvoice.date comienza como un NSString igual a "2/22/11". dateTemp termina en NIL. newInvoice.date también termina en NIL.

No puedo entender por qué.

Respuesta

25

Se enfrenta a este problema porque el formateador de fechas no es correcto. Suponga que su nueva variable de fecha de facturación almacena "11:02:23" su fechaFormatter debe ser @ "aa: MM: dd" y si su nueva fecha de factura.date tienda variable "2/22/11", entonces su dateFormatter debe ser @ "MM/dd/aa"

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init]; 
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 

[dateFormat1 setDateFormat:@"MM/dd/yy"]; 
[dateFormat2 setDateFormat:@"yyyy-MM-dd"]; 

dateTemp = [dateFormat1 dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat2 stringFromDate:dateTemp]; 

tanto en formato debe ser de acuerdo a sus requerimientos para obtener el resultado correcto

+2

Es decir, necesita 2 formateadores: uno para adentro, uno para afuera. – Wevah

1

Esto debería funcionar bien . He configurado el estilo de fecha. Puede cambiar NSDateFormatterShortStyle a otra cosa. También verifique su nuevo formato de factura. Fecha.

NSDate *dateTemp = [[NSDate alloc] init]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

[dateFormat setDateStyle: NSDateFormatterShortStyle]; 

dateTemp = [dateFormat dateFromString: newInvoice.date]; 

[dateFormat setDateFormat:@"yyyy-MM-dd"]; 

newInvoice.date = [dateFormat stringFromDate:dateTemp]; 
Cuestiones relacionadas