【发布时间】:2015-08-25 16:48:34
【问题描述】:
我正在测试一些 dateFormatter,但我遇到了一个简单的问题
formatter :
- (void)testDate {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];
[dateFormatter setLocale:locale];
NSString *stringDate = @"23/03/1";
NSDate *date = [dateFormatter dateFromString:stringDate];
XCTAssertTrue(date == nil);
}
我的测试是红色的,因为日期不为零。当我打印日期时:
(lldb) po date
0001-03-22 23:50:39 +0000
NSDateFormatter 正在填充日期字符串(1 ----> 0001)。我不想要这个填充。您认为这是 NSDateFormatter 的正确行为吗? (它是 NSDateFormatter 类中的错误吗?)。我怎样才能避免这种情况?
谢谢
【问题讨论】:
-
我已经阅读了它并且在我的代码中没有看到任何错误,你看到了什么吗?
-
你的问题是为什么
dd/MM/yyyy成功解析23/3/1?还是您的问题是,为什么在成功解析之后,po date将年份显示为四位数字,填充为零?仅供参考,po date输出的填充与NSDateFormatter无关,而是与po用于输出字符串的description方法有关。 -
我的问题是第一个:为什么它解析正确?
标签: ios nsdate nsdateformatter