Ios 下一个NSDateFormatter问题
我知道有很多类似的问题,我需要更加注意。但我不明白我的情况发生了什么Ios 下一个NSDateFormatter问题,ios,objective-c,nsdateformatter,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"]; 日期为零。我需要帮助。谢谢。要使用12小时格式进行解析,似乎NSDat
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"hh:mm:a MM/dd/yyyy"];
NSDate *date = [dateFormatter dateFromString:@"09:21:am 07/22/2014"];
日期
为零。我需要帮助。谢谢。要使用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);
}
请参见我刚刚测试过,它对我有效:date contain 2014-07-22 07:21:00+000谢谢您的帮助。我想格式应该是[formatter setDateFormat:@“yyyy MM dd HH:MM”];而不是[dateFormatter setDateFormat:@“hh:mm:a mm/dd/yyyy”];我认为它不能解决这个问题。我发现它可以在iPhone上运行,而且只有在iPad上才能运行。在我看来,这是因为时区B,将时间视为
hh:mm:a
是非常不标准的。你一般不会用额外的冒号。如果你需要它,尽管去吧,但它是非典型的。你是说en_US
?这是常用的语言环境。或者en_US\u POSIX
如中所述。@Rob感谢您的QA,我不知道!看来en_US\u POSIX
更好。我选择了es_US
,因为它返回hha
而不是dateFormatFromTemplate:@“j”
结果的“ha”。