Iphone NSDate DATEFORMSTRING返回null

Iphone NSDate DATEFORMSTRING返回null,iphone,objective-c,xcode,Iphone,Objective C,Xcode,当应用程序退出时,我正在将已转换为字符串的日期保存到plist。当viewDidLoad运行时,我试图读回字符串并将其转换回日期。字符串保存到plist并正确读入,但不会转换回日期。我使用的是NSDate命令给出的标准格式。Time1总是空的 输出如下所示: time1string = 2010-07-07 13:47:12 -0500 time1 = (null) - (void)applicationWillTerminate:(NSNotification *)notification

当应用程序退出时,我正在将已转换为字符串的日期保存到plist。当viewDidLoad运行时,我试图读回字符串并将其转换回日期。字符串保存到plist并正确读入,但不会转换回日期。我使用的是NSDate命令给出的标准格式。Time1总是空的

输出如下所示:

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");
代码如下所示:

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");
}

-空隙率{

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];

}

由于您使用了错误的日期格式,它似乎无法解析。尝试改用@yyyy-MM-dd HH:MM:ss Z。hh格式需要1-12小时,而hh使用0-23小时


有关可在此处通过使用的所有模式的完整参考,请参阅。

由于使用了错误的日期格式,因此它似乎无法解析。尝试改用@yyyy-MM-dd HH:MM:ss Z。hh格式需要1-12小时,而hh使用0-23小时


有关此处可使用的所有模式的完整参考信息,请参见。

能否显示您的时间声明1?在常见问题解答中,当您决定哪个答案对您最有帮助时,单击答案左侧的复选框大纲,将其标记为可接受答案。这让其他人知道你的问题得到了很好的答案。这样做是有帮助的,因为它向其他人表明你从社区中获得了价值。如果你不这样做,人们通常会礼貌地要求你回去接受更多问题的答案!>您能否显示时间1的声明?在FAQ>中,当您决定哪个答案对您最有帮助时,单击答案左侧的复选框大纲,将其标记为接受答案。这让其他人知道你的问题得到了很好的答案。这样做是有帮助的,因为它向其他人表明你从社区中获得了价值。如果你不这样做,人们通常会礼貌地要求你回去接受更多问题的答案!>这个答案似乎是正确的。我尝试过其他关于语言环境设置的答案,但都不起作用。这就像一个符咒。这些链接也很有帮助。这个答案似乎是正确的。我尝试过其他关于语言环境设置的答案,但都不起作用。这就像一个符咒。这些链接也确实有帮助。