我的日期格式化程序在某个特定日期返回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日”的值无效。失败原因:价值“20 Mar, 1998年“无效。 RecoverySuggestion:请提供有效值。 RecoveryOptions:代码:2048
答案 0 :(得分:2)
这与以色列的timeZone
有关,它有一天的节约时间变化(见http://timeanddate.com/time/change/israel/karmiel?year=1998)。
将时区更改为GMT:
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]
应该解决问题。