From b59b0259ca5d75fcb0e04dbc84209f77a01e0767 Mon Sep 17 00:00:00 2001 From: Alexandre Wilhelm Date: Wed, 9 Dec 2015 10:51:51 -0800 Subject: [PATCH] Fixed: CPDateFormatter did not work with symbols MM and LL with the month of december --- Foundation/CPDateFormatter.j | 4 +- Tests/Foundation/CPDateFormatterTest.j | 64 ++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/Foundation/CPDateFormatter.j b/Foundation/CPDateFormatter.j index 59a48019d..f66179ba2 100644 --- a/Foundation/CPDateFormatter.j +++ b/Foundation/CPDateFormatter.j @@ -1552,7 +1552,7 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, month = [[self monthSymbols] indexOfObject:dateComponent] + 1; } - if (month > 11 || length >= 5) + if (month > 12 || length >= 5) return nil; dateArray[1] = month; @@ -1580,7 +1580,7 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, month = [[self standaloneMonthSymbols] indexOfObject:dateComponent] + 1; } - if (month > 11 || length >= 5) + if (month > 12 || length >= 5) return nil; dateArray[1] = month; diff --git a/Tests/Foundation/CPDateFormatterTest.j b/Tests/Foundation/CPDateFormatterTest.j index 49e7e2b3f..3bdcc749d 100644 --- a/Tests/Foundation/CPDateFormatterTest.j +++ b/Tests/Foundation/CPDateFormatterTest.j @@ -635,18 +635,50 @@ var result = [_dateFormatter dateFromString:@"10"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"M"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"M"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MM"]; var result = [_dateFormatter dateFromString:@"7"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MM"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MM"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MMM"]; var result = [_dateFormatter dateFromString:@"Sep"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MMM"]; + var result = [_dateFormatter dateFromString:@"Jan"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MMM"]; + var result = [_dateFormatter dateFromString:@"Dec"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MMMM"]; var result = [_dateFormatter dateFromString:@"September"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MMMM"]; + var result = [_dateFormatter dateFromString:@"December"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"MMMM"]; + var result = [_dateFormatter dateFromString:@"January"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"MMMMM"]; var result = [_dateFormatter dateFromString:@"S"]; [self assert:result equals:nil]; @@ -682,18 +714,50 @@ var result = [_dateFormatter dateFromString:@"10"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"L"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"L"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LL"]; var result = [_dateFormatter dateFromString:@"7"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LL"]; + var result = [_dateFormatter dateFromString:@"1"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LL"]; + var result = [_dateFormatter dateFromString:@"12"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LLL"]; var result = [_dateFormatter dateFromString:@"Sep"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LLL"]; + var result = [_dateFormatter dateFromString:@"Dec"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LLL"]; + var result = [_dateFormatter dateFromString:@"Jan"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LLLL"]; var result = [_dateFormatter dateFromString:@"September"]; [self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LLLL"]; + var result = [_dateFormatter dateFromString:@"December"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]]; + + [_dateFormatter setDateFormat:@"LLLL"]; + var result = [_dateFormatter dateFromString:@"January"]; + [self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]]; + [_dateFormatter setDateFormat:@"LLLLL"]; var result = [_dateFormatter dateFromString:@"S"]; [self assert:result equals:nil];