Si utilizo el siguiente código:¿Existe una manera simple de convertir una marca de tiempo ISO8601 en un formato NSDate?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm"];
NSDate *myDate = [dateFormatter dateFromString:@"2010-01-28T15:22:23.863"];
NSLog(@"%@", [dateFormatter stringFromDate:myDate]);
Se convirtió con éxito a un objeto Date
, sin embargo, me parece que no puede formatear cualquier otra manera que yyyy-MM-dd'T'HH:mm
, es decir, lo que se registrado es 2010-01-28T15:22:23
Si Cambio el dateFormat para decir [dateFormatter setDateFormat:@"yyyy-MMMM-d'T'HH:mm"];
el objeto Date es nulo ...
Así que mi pregunta final es cómo formatear una marca de tiempo ISO8601 de una base de datos SQL para usar, por ejemplo, NSDateFormatterMediumStyle
para devolver "Januar y 1, 2010 "?
Es cierto que '+ (id) dateWithNaturalLanguageString: (NSString *) cadena 'analizará correctamente a menos que haya milis en su cadena ISO8601. –
Debo añadir que nunca debes usar esto ahora. En el momento en que usé esto, estaba funcionando, pero desde entonces he pasado a usar otras API que funcionan de manera confiable con ISO8601. dateWithNaturalLanguageString funciona con ISO8601, pero solo por accidente, no confíe en que continuará funcionando en el futuro. –