Jeff tiene razón, NSCoding
es probablemente la forma preferida de serializar objetos NSDate
. De todos modos, si realmente quiere/necesita guardar la fecha como una cadena de fecha simple esto podría ayudarlo:
En realidad, NSDateFormatter
no está limitado a los formatos predefinidos. Puede establecer un formato personalizado arbitrario a través de la propiedad dateFormat
. El siguiente código debería poder analizar cadenas de fechas en el "formato internacional", es decir. el formato NSDate
's -description
utiliza:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSDate* date = [dateFormatter dateFromString:@"2001-03-24 10:45:32 +0600"];
Para una referencia completa sobre la sintaxis de cadena de formato, echar un vistazo a la Unicode standard.
. Sin embargo, tenga cuidado con -description
- el resultado de estos métodos suele estar dirigido a lectores humanos (por ejemplo, mensajes de registro) ¡y no se garantiza que no cambie su formato de salida en una nueva versión de SDK! Más bien debería usar el mismo formateador de fecha para serializar su objeto de fecha:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSString* dateString = [dateFormatter stringFromDate:[NSDate date]];
Sí, necesito cadenas de fechas intercambiables multiplataforma. Esto debería resolverlo. ¡Gracias! –