Skip to content

Commit d11439c

Browse files
committed
setLenient(false) for date-time format checking
1 parent 79869a6 commit d11439c

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

core/src/main/java/org/everit/json/schema/internal/DateTimeFormatValidator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,20 @@ public class DateTimeFormatValidator implements FormatValidator {
3030

3131
private static final String DATETIME_FORMAT_STRING_SECFRAC = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
3232

33+
private SimpleDateFormat dateFormat(final String pattern) {
34+
SimpleDateFormat rval = new SimpleDateFormat(pattern);
35+
rval.setLenient(false);
36+
return rval;
37+
}
38+
3339
@Override
3440
public Optional<String> validate(final String subject) {
3541
try {
36-
new SimpleDateFormat(DATETIME_FORMAT_STRING).parse(subject);
42+
dateFormat(DATETIME_FORMAT_STRING).parse(subject);
3743
return Optional.empty();
3844
} catch (ParseException e) {
3945
try {
40-
new SimpleDateFormat(DATETIME_FORMAT_STRING_SECFRAC).parse(subject);
46+
dateFormat(DATETIME_FORMAT_STRING_SECFRAC).parse(subject);
4147
return Optional.empty();
4248
} catch (ParseException e1) {
4349
return Optional.of(String.format("[%s] is not a valid date-time", subject));

core/src/test/java/org/everit/json/schema/internal/DefaultFormatValidatorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void dateTimeFormatFailure() {
4949

5050
@Test
5151
public void dateTimeSecFracSuccess() {
52-
assertSuccess("2015-02-30T11:00:00.111Z", new DateTimeFormatValidator());
52+
assertSuccess("2015-02-28T11:00:00.111Z", new DateTimeFormatValidator());
5353
}
5454

5555
@Test
@@ -59,7 +59,7 @@ public void dateTimeSuccess() {
5959

6060
@Test
6161
public void dateTimeZSuccess() {
62-
assertSuccess("2015-02-30T11:00:00Z", new DateTimeFormatValidator());
62+
assertSuccess("2015-02-28T11:00:00Z", new DateTimeFormatValidator());
6363
}
6464

6565
@Test

0 commit comments

Comments
 (0)