我有一个使用NSDateFormatter
转换为NSDate
的函数。
+(NSDate*)getDateFromCurrentTimestamp:(NSString*)currentTimestamp{
// currentTimestamp= @"28-Feb-2012 16:42:19 PM";
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDoesRelativeDateFormatting:NO];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[dateFormatter setFormatterBehavior:NSDateFormatterShortStyle];
//[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault];
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss a"];
return [dateFormatter dateFromString:currentTimestamp];
}
IOS 5.x 返回正确的NSDate
。
在 4.1 和 4.2 上运行时也返回正确的 NSDate
。
在 4.3.2 和 4.3.3 上运行时,返回 null
。
这怎么可能?有什么解决方法吗?
编辑
这不是由 iOS 错误引起。这个和手机本身有关系。某些手机在设备中设置了不同的区域设置
。因此我们必须强制它使用一种语言环境
。
最佳答案
来 self 们在评论中的讨论:
您是否为 4.3.2 和 4.3.3 设备设置了区域和区域设置?看看这个 SO question有帮助。
相关代码:
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"] autorelease]];
关于iphone - NSDateFormatter IOS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9970923/