我已经使用美国的regiorn格式测试了我的应用,并且日期显示正确。当地区更改为我现在居住的意大利时,其中包含null值。
我的起始字符串日期是:
-“2013年5月2日下午6:46:33”
结果日期正确为:
-“02/05/2013 18:46:33”
这是我的代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter setDateFormat:@"MM dd, yyyy hh:mm:ss a"];
NSDate *dateFromString;
dateFromString = [dateFormatter dateFromString:dataStr];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSString *stringFromDate = [dateFormatter stringFromDate:dateFromString];
最佳答案
如果您的起始字符串是May 2, 2013 6:46:33 PM
,则有两个问题:
MM dd, yyyy hh:mm:ss a
与您的字符串不匹配。它必须是MMMM dd, yyyy hh:mm:ss a
。 MM
的使用适用于数字月份。缩写月份名称使用MMM
,完整月份名称使用MMMM
。 您的代码应为:
NSString *dateStr = @"May 2, 2013 6:46:33 PM";
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
[inputDateFormatter setDateFormat:@"MMMM dd, yyyy hh:mm:ss a"];
[inputDateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *dateFromString = [inputDateFormatter dateFromString:dataStr];
NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init];
[outputDateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
NSString *stringFromDate = [outputDateFormatter stringFromDate:dateFromString];
关于ios - IOS:NSDateFormatter用于意大利的区域格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16343595/