Objective-C中的日期格式化程序返回null
问题描述:
我不明白为什么我的dateFormatter
返回null。代码非常简单,但我在这里没有看到任何错误。我也尝试使用setDateFormat
,但没有任何结果。代码有什么问题?Objective-C中的日期格式化程序返回null
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
mikey.hireDate = [dateFormatter dateFromString:@"Aug 02, 2010"];
答
将日期格式化程序的语言环境设置为EN_US_POSIX
。这样,设备的区域不会改变格式器。
NSLocale *locale = [[NSLocale alloc]
initWithLocaleIdentifier:@"EN_US_POSIX"];
[dateFormatter setLocale:locale];
答
您的代码在我的机器上工作;这就是说,如果你想从用户输入中解析日期字符串,NSDataDetector通常比NSDateFormatter更好。
谢谢。它有帮助。那么,Xcode是使用我的设备的当前位置来更改日期的格式或什么?你能否更详细地解释为什么我们应该使用locale初始化日期格式化程序? – Tigran
没错。日期格式化程序默认使用实际设备的区域设置。例如,如果用户使用中文电话,“Aug”将是一个未定义的短月,因为它是英文的。 – the4kman
好的。非常感谢你! – Tigran