一个奇怪的问题:
我通过以下代码将字符串转换为日期:
NSString *dateStr = @"02/10/2012 12:00:13 PM";
NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
NSDate *d = [dtF dateFromString:dateStr];
NSDateFormatter *dateFormatStr = [[NSDateFormatter alloc] init];
[dateFormatStr setDateFormat:@"MMMM dd, yyyy HH:mm a"];
NSString *strDate = [dateFormatStr stringFromDate:d];
NSLog(@"Output:::-->%@",strDate);
我正在使用 Xcode 4.2
在模拟器和设备iPhone 3Gs以及iOS 5.0和iPhone 4的iPad中工作正常
但问题出在 iPod with iOS 5.0.1 。在iPod中,它显示(null)值。
代码有什么问题?或者还有其他问题吗?
答案 0 :(得分:3)
我发现由于iPhone上的用户设置,NSDateFormatter输出可能不稳定。你可以使用这个 -
强制它标准化(我不记得细节)[dtF setLocale:enUSPOSIXLocale];
...使整个输出更具可预测性。
答案 1 :(得分:2)
而不是a
尝试aaa
用以下内容替换您的代码:
NSString *dateStr = @"02/10/2012 12:00:13 PM";
NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
NSDate *d = [dtF dateFromString:dateStr];
NSDateFormatter *dateFormatStr = [[NSDateFormatter alloc] init];
[dateFormatStr setDateFormat:@"MMMM dd, yyyy hh:mm aaa"];
NSString *strDate = [dateFormatStr stringFromDate:d];
NSLog(@"Output:::-->%@",strDate);
输出::: - > February 10, 2012 12:00 PM
答案 2 :(得分:1)
解决了!!!
问题出在日期字符串NSString *dateStr = @"02/10/2012 12:00:13 PM";
时间是24小时格式“AM / PM”我认为这是错误的。 AM / PM 应采用12小时格式。
所以,我刚刚从字符串中删除了 AM / PM ,它确实有用!!!
也来自代码:
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss"];