Objective-C - 设备无法识别的日期格式

时间:2014-06-25 14:28:23

标签: ios objective-c nsdate nsdateformatter

我在NSString上有一个日期,格式为:"Jun 25, 2014 10:10:15 AM"

我需要将这个日期从一个NSDate开始。但是我在日期格式上尝试了一些格式,并且设备上NSDate的值始终为零。如果我在设备上运行Xcode或在模拟器上运行它的工作,但我生成.ipa并发送到iPhone无法正常工作。

代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, yyyy HH:mm:ss a"];
NSDate * dataStringFormatted = [dateFormat dateFromString: @"Jun 25, 2014 10:10:15 AM"];

我尝试过格式:

@"MMM dd, yyyy HH:mm:ss a"
@"MMM dd, yyyy H:mm:ss a"
@"MMM dd, yyyy HH:mm:ss aa"
@"MMM dd, yyyy H:mm:ss aa"
@"MMM dd, yyyy HH:mm:ss aaa"
@"MMM dd, yyyy H:mm:ss aaa"
@"MMMM dd, yyyy H:mm:ss aa"
@"MMMM dd, yyyy H:mm:ss aaa"
@"MMMM dd, yyyy H:mm:ss a"
@"MMM dd, yyyy HH:mm:ss A"

对于所有格式,对象NSDate始终为零。

感谢。

1 个答案:

答案 0 :(得分:6)

您的代码有两个问题,HH是24小时的日期,您应该告诉格式化程序日期的语言:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormat setDateFormat:@"MMM dd, yyyy hh:mm:ss a"];
NSDate * dataStringFormatted = [dateFormat dateFromString: @"Jun 25, 2014 10:10:15 AM"];