NSDate dateFromString возвращает ноль - PullRequest
1 голос
/ 07 июля 2010

Я сохраняю дату, которая была преобразована в строку в список при выходе из приложения.Когда viewDidLoad запущен, я пытаюсь прочитать строку обратно и преобразовать ее обратно в дату.Строка сохраняется в листе и правильно читает, но не преобразует обратно в дату.Я использую стандартный формат, заданный командой даты NSDate.Время1 всегда равно нулю.

Вывод выглядит так:

time1string = 2010-07-07 13:47:12 -0500
time1 = (null)

Код выглядит так:

- (void)applicationWillTerminate:(NSNotification *)notification {
NSMutableArray *array = [[NSMutableArray alloc] init];

[array addObject: [NSString stringWithFormat:@"%@", time1]];

[array writeToFile:[self dataFilePath] atomically:YES];
[array release];

NSLog(@"APP Terminating, Persisting Data");

}

- (void) viewDidLoad {

NSLog(@"View did load");
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];

    NSString *time1string = [array objectAtIndex:1];
    NSLog(@"time1string = %@",time1string);
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
    time1 = [dateFormat dateFromString:time1string];
    NSLog(@"time1 = %@",time1);
    [dateFormat release];
    [array release];

}
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(applicationWillTerminate:)
                                             name:UIApplicationWillTerminateNotification 
                                           object:app];
 [super viewDidLoad];

}

1 Ответ

8 голосов
/ 07 июля 2010

Похоже, что он не в состоянии анализировать, потому что вы используете неправильный формат даты. Попробуйте использовать @"yyyy-MM-dd HH:mm:ss Z" вместо этого. Формат hh требует часа в диапазоне 1-12, тогда как HH использует 0-23.

См. Locale Data Markup Language для получения полной справочной информации по всем шаблонам, которые можно использовать здесь (через Справочник по средствам форматирования данных ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...