下一个NSDateFormatter问题

时间:2014-07-22 02:38:47

标签: ios objective-c nsdateformatter

知道有很多类似的问题,我需要更加专心。但我无法理解我的情况会发生什么。

NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"hh:mm:a MM/dd/yyyy"];
NSDate *date = [dateFormatter dateFromString:@"09:21:am 07/22/2014"];

date是零。需要帮助。感谢。

1 个答案:

答案 0 :(得分:1)

要使用12小时格式进行解析,似乎NSDateFormatter需要任何12小时的语言环境。 我不知道这是不是一种错误。

NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"es_US"]];
[dateFormatter setDateFormat:@"hh:mm:a MM/dd/yyyy"];
NSDate *date = [dateFormatter dateFromString:@"09:21:am 07/22/2014"];

要查找12小时格式的区域设置,此代码有助于:

NSArray *locales = [NSLocale availableLocaleIdentifiers];
for(NSString *locale in locales) {
    NSString *fmt = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 locale:[NSLocale localeWithLocaleIdentifier:locale]];
    NSLog(@"%10s:%@", [locale UTF8String], fmt);
}

请参阅this answer