iPhone: невозможно преобразовать дату из строки - PullRequest
1 голос
/ 11 ноября 2011

Я пытаюсь преобразовать строку в NSDate, используя следующий код.

NSString *old = [[NSUserDefaults standardUserDefaults] valueForKey:@"OLD_DATE"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy"];
NSDate *oldDate = [formatter dateFromString:old];
NSLog(@"Old Date : %@",oldDate);

Я устанавливаю OLD_DATE следующим образом:

NSDate *oldDate = [NSDate date];
NSString *old = [[NSString stringWithFormat:@"%@",oldDate] retain];
[[NSUserDefaults standardUserDefaults] setObject:old forKey:@"OLD_DATE"];

Но я получаю ноль в NSLog(@"Old Date : %@",oldDate);: (

Я нашел много похожих ссылок с тем же кодом и прекрасно работает для них.

Так в чем может быть проблема с моим кодом?

1 Ответ

4 голосов
/ 11 ноября 2011

Не переводить дату в строку:

NSDate *oldDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:oldDate forKey:@"OLD_DATE"];

Чтобы прочитать дату просто:

NSDate *old = [[NSUserDefaults standardUserDefaults] objectForKey:@"OLD_DATE"];

Не должно быть никаких причин для согласования даты в строке перед сохранением в NSUserDefaults.

Но если вы хотите согласовать строку назад к дате, вам понадобится правильный формат. Описание NSDate будет выглядеть примерно так: 2011-11-11 12:58:36 +0000

NSString *old = [[NSUserDefaults standardUserDefaults] valueForKey:@"OLD_DATE"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *oldDate = [formatter dateFromString:old];
NSLog(@"Old Date : %@",oldDate);
...