Преобразовать описание NSDATE в NSDate?

Если бы Вы хотите истинное эксклюзивное или, я просто сделал бы это в коде вместо в regex. В Perl:

/foo/ xor /bar/

, Но Ваш комментарий:

Соответствия: "нечто", несоответствия "панели": "foofoo" "barfoo" "foobarfoo" "barbar" "barfoofoo"

указывает, что Вы действительно не ищете эксклюзивный или. Вы на самом деле имеете в виду "/foo|bar/, соответствует точно однажды?"

my $matches = 0;
while (/foo|bar/g) {
  last if ++$matches > 1;
}

my $ok = ($matches == 1)
6
задан Moshe 23 November 2011 в 11:12
поделиться

4 ответа

Джефф прав, NSCoding , вероятно, является предпочтительным способом сериализации объектов NSDate . В любом случае, если вы действительно хотите / должны сохранить дату в виде простой строки даты, это может вам помочь:

На самом деле NSDateFormatter вообще не ограничивается предопределенными форматами. Вы можете установить произвольный пользовательский формат с помощью свойства dateFormat . Следующий код должен иметь возможность анализировать строки даты в «международном формате», т.е. в описании формата NSDate используется:

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 .

] Однако будьте осторожны с -описание - выходные данные этих методов обычно предназначены для читателей (например, сообщения журнала), и не гарантируется, что он не изменит свой выходной формат в новой версии SDK! Лучше использовать тот же форматировщик даты для сериализации объекта даты:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";
NSString* dateString = [dateFormatter stringFromDate:[NSDate date]];
25
ответ дан 8 December 2019 в 03:27
поделиться

Почему бы вместо сохранения описания в файл не сохранить сам объект? NSDate соответствует протоколу NSCoding ; сохранение объекта означает, что вам не нужно беспокоиться о его переводе. Дополнительную информацию см. В Справочнике протокола NSCoding .

4
ответ дан 8 December 2019 в 03:27
поделиться

Я бы попытался настроить NSDateFormatter для успешного анализа строки следующим способом:

- (NSDate *)dateFromString:(NSString *)string

Обратите внимание, что получение может занять некоторое время. ] NSDateFormatter настроен как раз для успешного синтаксического анализа вашей строки.

Если вы собираетесь хранить данные, ориентированные на программы, как это, я бы также рекомендовал хранить их в более легком для доступа формате, например, CFAbsoluteTime . После того, как вы добавили его в свою программу, вы можете отформатировать его в международный формат или что-нибудь еще удобочитаемое.

0
ответ дан 8 December 2019 в 03:27
поделиться

Преобразуйте его в формат, который принимает NSDate, а затем выполните обратное преобразование.

В качестве альтернативы,в зависимости от того, на какой NSDate вы ссылаетесь (!), initWithString должен охватывать международные стандартные даты.

0
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: