2010-08-16 90 views
1

获得一个的NSString如下:的NSDate从NSString的问题

NSString *lastSyncDate = [[items objectAtIndex:0] objectForKey:@"LastSyncDate"]; 

这个值是:1/1/2010 12:00:00 AM

我使用下面的转换为一个日期:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setTimeStyle:NSDateFormatterFullStyle]; 
[df setDateFormat:@"MMMM d, y HH:mm:ss ZZZ"]; 
NSDate *mySyncDate = [df dateFromString:lastSyncDate]; 

这给了我一个空值?

回答

4

您的日期格式与字符串的格式不匹配。

尝试

[df setDateFormat:@"M/d/y hh:mm:ss a"]; 

[df setDateFormat:@"M/d/y h:mm:ss a"]; // if the hours aren't zero-padded 

格式字符串是在http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

+0

真棒,大声笑 - 我正在寻找一个列表可以告诉我什么我可以用于DateFormat的我应该只是猜到了! – Slee 2010-08-16 20:16:14

+0

当然,日期字符串取决于您的区域格式/时区/日历。强制ISO 8601风格日期([NSDate description]是一个合理的近似值,我认为)更强大,或者仅存储timeIntervalSinceReferenceDate或timeIntervalSince1970。 – 2010-08-16 21:09:06

0

我同意西莫坎贝尔描述的Unicode标准。但是,请注意,在格式化程序(NSDateFormatter)上设置时间样式将不会影响dateFromString返回的结果。