简单的NSDateFormatter / String Parse

时间:2012-10-13 10:18:57

标签: iphone xcode date nsdate nsdateformatter

2012-10-12 19:29:43

Aquivalent NSDateFormatter

[_dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

引发异常......为什么?

谢谢!

参考: http://waracle.net/mobile/iphone-nsdateformatter-date-formatting-table/

更新

问题似乎是字符串。如果我对字符串进行硬编码:

NSString * string = @"2012-10-12 19:29:43";

工作正常。

我从一组键值对中读取它,所以我这样做:

NSString * string = [NSString stringWithFormat:@"%@", (NSString *)[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]];

控制台输出:

#1:

2012-10-12 10:16:49

#2:

( "2012-10-12 10:16:49" )

我认为这个问题与数组中的字符串解析有关。

更新2:

[[[NSArray readFromPlistFile:@"latestchangesdates"] objectAtIndex:0] valueForKey:@"newsLastEdited"]]

......终于做到了。

2 个答案:

答案 0 :(得分:0)

看起来Plist文件中的键newsLastEdited实际上是返回一个数组而不是字符串。

该行:

NSString *string = [NSString stringWithFormat:@"%@", (NSString *)[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]];

只是从NSString转换为[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"]返回的值。这不会自动使返回的值成为字符串。

如果您使用以下内容会发生什么:

NSString *string = [[[NSArray readFromPlistFile:@"latestchangesdates"] valueForKey:@"newsLastEdited"] objectAtIndex:0];

如果我是正确的,这将采用从Plist newsLastEdited键返回的数组的第一个元素。如果这样可行,那么您可能需要一些时间来了解存储在Plist文件中的数据结构。

答案 1 :(得分:0)

[[[NSArray readFromPlistFile:@"latestchangesdates"] objectAtIndex:0] valueForKey:@"newsLastEdited"]]

......终于做到了。