![](/img/trans.png)
[英]NSDateFormatter dateFromString returns nil on improper date
[英]NSDateFormatter dateFromString returns nil for one specific date
我的日期格式化程序返回nil表示一个特定日期:“ 1998年3月20日”。
+ (NSDate*)dateFromString:(NSString*)date
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[NSLocale currentLocale]];
if ([WPRConverter isUropeanMetrics])
[df setDateFormat:@"dd MMM, yyyy"];
else
[df setDateFormat:@"MMM dd, yyyy"];
return [df dateFromString:date];
}
我检查了附近的日期,并全部正确返回:
我的语言环境是“ en_US”。
使用[NSDateFormatter getObjectValue:forString:range:error:]使我出错:
值“ 1998年3月20日”无效。 FailureReason:值“ 1998年3月20日”无效。 RecoverySuggestion:请提供有效值。 RecoveryOptions:代码:2048
这与以色列的timeZone
有关, timeZone
时发生了更改(请参见http://timeanddate.com/time/change/israel/karmiel?year=1998 )。
将时区更改为GMT:
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]
应该解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.