Джефф прав, NSCoding
, вероятно, предпочтительный способ сериализации NSDate
объектов. В любом случае, если вы действительно хотите / хотите сохранить дату в виде простой строки даты, это может помочь вам:
На самом деле, NSDateFormatter
вообще не ограничен предопределенными форматами. Вы можете установить произвольный пользовательский формат через свойство dateFormat
. Следующий код должен уметь анализировать строки даты в «международном формате», т.е. Формат NSDate
-description
использует:
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"];
Для получения полной информации о синтаксисе строки формата см. стандарт Unicode .
Однако будьте осторожны с -description
- выходные данные этих методов обычно предназначены для читателей-людей (например, сообщений журнала), и не гарантируется, что они не изменят свой формат вывода в новой версии SDK! Для сериализации объекта даты лучше использовать тот же форматер даты:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSString* dateString = [dateFormatter stringFromDate:[NSDate date]];