Generated-output differences

quicktype output changed between the PR base and tested PR merge revisions.
← Back to the pull request
315test cases
675files differ
675modified
0new
0deleted
4,340changed lines
+2,426 −1,914insertions / deletions
Base 8dd801363fbde4b87c9ae9abe3e030910c3e2ce3 · PR merge 9398da243bb23d5c7afd9e1c3b730430373f74ea · Head f46fd23daac41567a4ac9d794e22c2cd21dfd2fe · raw patch
Test case

test/inputs/graphql/github1.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github2.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github3.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github4.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github5.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github6.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github7.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github8.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/graphql/github9.graphql

2 generated files · +6 −6
Mgraphql-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mgraphql-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/00c36.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/00ec5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/010b1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/016af.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/033b1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/050b0.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/06bee.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/07540.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/0779f.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/07c75.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/09f54.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/0a358.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -182,11 +182,23 @@ extension Result {
182182
183183 // MARK: - Helper functions for creating encoders and decoders
184184
185+private func isValidDate(_ value: String) -> Bool {
186+ let formatter = DateFormatter()
187+ formatter.locale = Locale(identifier: "en_US_POSIX")
188+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
189+ formatter.dateFormat = "u-MM-dd"
190+ formatter.isLenient = false
191+ return formatter.date(from: String(value.prefix(10))) != nil
192+}
193+
185194 func newJSONDecoder() -> JSONDecoder {
186195 let decoder = JSONDecoder()
187196 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
188197 let container = try decoder.singleValueContainer()
189198 let dateStr = try container.decode(String.self).uppercased()
199+ guard isValidDate(dateStr) else {
200+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
201+ }
190202
191203 let formatter = DateFormatter()
192204 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/0a91a.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -1238,11 +1238,23 @@ extension Array where Element == TopLevel.Element {
12381238
12391239 // MARK: - Helper functions for creating encoders and decoders
12401240
1241+private func isValidDate(_ value: String) -> Bool {
1242+ let formatter = DateFormatter()
1243+ formatter.locale = Locale(identifier: "en_US_POSIX")
1244+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
1245+ formatter.dateFormat = "u-MM-dd"
1246+ formatter.isLenient = false
1247+ return formatter.date(from: String(value.prefix(10))) != nil
1248+}
1249+
12411250 func newJSONDecoder() -> JSONDecoder {
12421251 let decoder = JSONDecoder()
12431252 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
12441253 let container = try decoder.singleValueContainer()
12451254 let dateStr = try container.decode(String.self).uppercased()
1255+ guard isValidDate(dateStr) else {
1256+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
1257+ }
12461258
12471259 let formatter = DateFormatter()
12481260 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/0b91a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/0cffa.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/0e0c2.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/0fecf.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/10be4.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/112b5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/127a1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/13d8d.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/14d38.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/167d6.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/16bc5.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/176f1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/1a7f5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/1b28c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/1b409.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/2465e.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/24f52.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/262f0.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -813,11 +813,23 @@ extension Wind {
813813
814814 // MARK: - Helper functions for creating encoders and decoders
815815
816+private func isValidDate(_ value: String) -> Bool {
817+ let formatter = DateFormatter()
818+ formatter.locale = Locale(identifier: "en_US_POSIX")
819+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
820+ formatter.dateFormat = "u-MM-dd"
821+ formatter.isLenient = false
822+ return formatter.date(from: String(value.prefix(10))) != nil
823+}
824+
816825 func newJSONDecoder() -> JSONDecoder {
817826 let decoder = JSONDecoder()
818827 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
819828 let container = try decoder.singleValueContainer()
820829 let dateStr = try container.decode(String.self).uppercased()
830+ guard isValidDate(dateStr) else {
831+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
832+ }
821833
822834 let formatter = DateFormatter()
823835 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/26b49.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/26c9c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/27332.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/29f47.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/2d4e2.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/2df80.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/31189.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/32431.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/32d5c.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -106,11 +106,23 @@ extension Array where Element == TopLevel.Element {
106106
107107 // MARK: - Helper functions for creating encoders and decoders
108108
109+private func isValidDate(_ value: String) -> Bool {
110+ let formatter = DateFormatter()
111+ formatter.locale = Locale(identifier: "en_US_POSIX")
112+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
113+ formatter.dateFormat = "u-MM-dd"
114+ formatter.isLenient = false
115+ return formatter.date(from: String(value.prefix(10))) != nil
116+}
117+
109118 func newJSONDecoder() -> JSONDecoder {
110119 let decoder = JSONDecoder()
111120 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
112121 let container = try decoder.singleValueContainer()
113122 let dateStr = try container.decode(String.self).uppercased()
123+ guard isValidDate(dateStr) else {
124+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
125+ }
114126
115127 let formatter = DateFormatter()
116128 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/337ed.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -374,11 +374,23 @@ enum ResultType: String, Codable {
374374
375375 // MARK: - Helper functions for creating encoders and decoders
376376
377+private func isValidDate(_ value: String) -> Bool {
378+ let formatter = DateFormatter()
379+ formatter.locale = Locale(identifier: "en_US_POSIX")
380+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
381+ formatter.dateFormat = "u-MM-dd"
382+ formatter.isLenient = false
383+ return formatter.date(from: String(value.prefix(10))) != nil
384+}
385+
377386 func newJSONDecoder() -> JSONDecoder {
378387 let decoder = JSONDecoder()
379388 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
380389 let container = try decoder.singleValueContainer()
381390 let dateStr = try container.decode(String.self).uppercased()
391+ guard isValidDate(dateStr) else {
392+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
393+ }
382394
383395 let formatter = DateFormatter()
384396 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/33d2e.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/34702.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/3536b.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/3659d.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/36d5d.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/3a6b3.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/3e9a3.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/3f1ce.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -811,11 +811,23 @@ extension Wind {
811811
812812 // MARK: - Helper functions for creating encoders and decoders
813813
814+private func isValidDate(_ value: String) -> Bool {
815+ let formatter = DateFormatter()
816+ formatter.locale = Locale(identifier: "en_US_POSIX")
817+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
818+ formatter.dateFormat = "u-MM-dd"
819+ formatter.isLenient = false
820+ return formatter.date(from: String(value.prefix(10))) != nil
821+}
822+
814823 func newJSONDecoder() -> JSONDecoder {
815824 let decoder = JSONDecoder()
816825 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
817826 let container = try decoder.singleValueContainer()
818827 let dateStr = try container.decode(String.self).uppercased()
828+ guard isValidDate(dateStr) else {
829+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
830+ }
819831
820832 let formatter = DateFormatter()
821833 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/421d4.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/437e7.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/43970.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/43eaf.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/458db.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/4961a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/4a0d7.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/4a455.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/4c547.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/4d6fb.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/4e336.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/54147.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/54d32.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -187,11 +187,23 @@ enum Status: String, Codable {
187187
188188 // MARK: - Helper functions for creating encoders and decoders
189189
190+private func isValidDate(_ value: String) -> Bool {
191+ let formatter = DateFormatter()
192+ formatter.locale = Locale(identifier: "en_US_POSIX")
193+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
194+ formatter.dateFormat = "u-MM-dd"
195+ formatter.isLenient = false
196+ return formatter.date(from: String(value.prefix(10))) != nil
197+}
198+
190199 func newJSONDecoder() -> JSONDecoder {
191200 let decoder = JSONDecoder()
192201 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
193202 let container = try decoder.singleValueContainer()
194203 let dateStr = try container.decode(String.self).uppercased()
204+ guard isValidDate(dateStr) else {
205+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
206+ }
195207
196208 let formatter = DateFormatter()
197209 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/570ec.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/5dd0d.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/5eae5.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -90,11 +90,23 @@ extension Array where Element == TopLevel.Element {
9090
9191 // MARK: - Helper functions for creating encoders and decoders
9292
93+private func isValidDate(_ value: String) -> Bool {
94+ let formatter = DateFormatter()
95+ formatter.locale = Locale(identifier: "en_US_POSIX")
96+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
97+ formatter.dateFormat = "u-MM-dd"
98+ formatter.isLenient = false
99+ return formatter.date(from: String(value.prefix(10))) != nil
100+}
101+
93102 func newJSONDecoder() -> JSONDecoder {
94103 let decoder = JSONDecoder()
95104 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
96105 let container = try decoder.singleValueContainer()
97106 let dateStr = try container.decode(String.self).uppercased()
107+ guard isValidDate(dateStr) else {
108+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
109+ }
98110
99111 let formatter = DateFormatter()
100112 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/5eb20.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/5f3a1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/5f7fe.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/617e8.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/61b66.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/6260a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/65dec.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/66121.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/6617c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/67c03.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/68c30.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/6c155.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/6de06.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/6dec6.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -813,11 +813,23 @@ extension Wind {
813813
814814 // MARK: - Helper functions for creating encoders and decoders
815815
816+private func isValidDate(_ value: String) -> Bool {
817+ let formatter = DateFormatter()
818+ formatter.locale = Locale(identifier: "en_US_POSIX")
819+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
820+ formatter.dateFormat = "u-MM-dd"
821+ formatter.isLenient = false
822+ return formatter.date(from: String(value.prefix(10))) != nil
823+}
824+
816825 func newJSONDecoder() -> JSONDecoder {
817826 let decoder = JSONDecoder()
818827 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
819828 let container = try decoder.singleValueContainer()
820829 let dateStr = try container.decode(String.self).uppercased()
830+ guard isValidDate(dateStr) else {
831+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
832+ }
821833
822834 let formatter = DateFormatter()
823835 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/6eb00.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/70c77.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/734ad.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -395,11 +395,23 @@ enum Status: String, Codable {
395395
396396 // MARK: - Helper functions for creating encoders and decoders
397397
398+private func isValidDate(_ value: String) -> Bool {
399+ let formatter = DateFormatter()
400+ formatter.locale = Locale(identifier: "en_US_POSIX")
401+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
402+ formatter.dateFormat = "u-MM-dd"
403+ formatter.isLenient = false
404+ return formatter.date(from: String(value.prefix(10))) != nil
405+}
406+
398407 func newJSONDecoder() -> JSONDecoder {
399408 let decoder = JSONDecoder()
400409 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
401410 let container = try decoder.singleValueContainer()
402411 let dateStr = try container.decode(String.self).uppercased()
412+ guard isValidDate(dateStr) else {
413+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
414+ }
403415
404416 let formatter = DateFormatter()
405417 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/75912.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7681c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/76ae1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/77392.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -132,11 +132,23 @@ extension Array where Element == TopLevel.Element {
132132
133133 // MARK: - Helper functions for creating encoders and decoders
134134
135+private func isValidDate(_ value: String) -> Bool {
136+ let formatter = DateFormatter()
137+ formatter.locale = Locale(identifier: "en_US_POSIX")
138+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
139+ formatter.dateFormat = "u-MM-dd"
140+ formatter.isLenient = false
141+ return formatter.date(from: String(value.prefix(10))) != nil
142+}
143+
135144 func newJSONDecoder() -> JSONDecoder {
136145 let decoder = JSONDecoder()
137146 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
138147 let container = try decoder.singleValueContainer()
139148 let dateStr = try container.decode(String.self).uppercased()
149+ guard isValidDate(dateStr) else {
150+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
151+ }
140152
141153 let formatter = DateFormatter()
142154 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/7d397.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7d722.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7df41.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7dfa6.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7eb30.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/7f568.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -206,11 +206,23 @@ extension Array where Element == TopLevel.Element {
206206
207207 // MARK: - Helper functions for creating encoders and decoders
208208
209+private func isValidDate(_ value: String) -> Bool {
210+ let formatter = DateFormatter()
211+ formatter.locale = Locale(identifier: "en_US_POSIX")
212+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
213+ formatter.dateFormat = "u-MM-dd"
214+ formatter.isLenient = false
215+ return formatter.date(from: String(value.prefix(10))) != nil
216+}
217+
209218 func newJSONDecoder() -> JSONDecoder {
210219 let decoder = JSONDecoder()
211220 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
212221 let container = try decoder.singleValueContainer()
213222 let dateStr = try container.decode(String.self).uppercased()
223+ guard isValidDate(dateStr) else {
224+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
225+ }
214226
215227 let formatter = DateFormatter()
216228 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/7fbfb.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/80aff.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -186,11 +186,23 @@ extension Result {
186186
187187 // MARK: - Helper functions for creating encoders and decoders
188188
189+private func isValidDate(_ value: String) -> Bool {
190+ let formatter = DateFormatter()
191+ formatter.locale = Locale(identifier: "en_US_POSIX")
192+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
193+ formatter.dateFormat = "u-MM-dd"
194+ formatter.isLenient = false
195+ return formatter.date(from: String(value.prefix(10))) != nil
196+}
197+
189198 func newJSONDecoder() -> JSONDecoder {
190199 let decoder = JSONDecoder()
191200 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
192201 let container = try decoder.singleValueContainer()
193202 let dateStr = try container.decode(String.self).uppercased()
203+ guard isValidDate(dateStr) else {
204+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
205+ }
194206
195207 let formatter = DateFormatter()
196208 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/82509.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/8592b.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/88130.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/8a62c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/908db.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/9617f.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/96f7c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/9847b.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/9929c.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/996bd.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/9a503.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/9ac3b.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -212,11 +212,23 @@ enum Title: String, Codable {
212212
213213 // MARK: - Helper functions for creating encoders and decoders
214214
215+private func isValidDate(_ value: String) -> Bool {
216+ let formatter = DateFormatter()
217+ formatter.locale = Locale(identifier: "en_US_POSIX")
218+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
219+ formatter.dateFormat = "u-MM-dd"
220+ formatter.isLenient = false
221+ return formatter.date(from: String(value.prefix(10))) != nil
222+}
223+
215224 func newJSONDecoder() -> JSONDecoder {
216225 let decoder = JSONDecoder()
217226 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
218227 let container = try decoder.singleValueContainer()
219228 let dateStr = try container.decode(String.self).uppercased()
229+ guard isValidDate(dateStr) else {
230+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
231+ }
220232
221233 let formatter = DateFormatter()
222234 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/9eed5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/a0496.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -193,11 +193,23 @@ extension Errors {
193193
194194 // MARK: - Helper functions for creating encoders and decoders
195195
196+private func isValidDate(_ value: String) -> Bool {
197+ let formatter = DateFormatter()
198+ formatter.locale = Locale(identifier: "en_US_POSIX")
199+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
200+ formatter.dateFormat = "u-MM-dd"
201+ formatter.isLenient = false
202+ return formatter.date(from: String(value.prefix(10))) != nil
203+}
204+
196205 func newJSONDecoder() -> JSONDecoder {
197206 let decoder = JSONDecoder()
198207 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
199208 let container = try decoder.singleValueContainer()
200209 let dateStr = try container.decode(String.self).uppercased()
210+ guard isValidDate(dateStr) else {
211+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
212+ }
201213
202214 let formatter = DateFormatter()
203215 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/a1eca.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/a3d8c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/a45b0.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/a71df.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/a9691.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ab0d1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/abb4b.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ac944.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ad8be.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ae7f0.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ae9ca.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/af2d1.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/b4865.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -183,11 +183,23 @@ extension Array where Element == TopLevel.Element {
183183
184184 // MARK: - Helper functions for creating encoders and decoders
185185
186+private func isValidDate(_ value: String) -> Bool {
187+ let formatter = DateFormatter()
188+ formatter.locale = Locale(identifier: "en_US_POSIX")
189+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
190+ formatter.dateFormat = "u-MM-dd"
191+ formatter.isLenient = false
192+ return formatter.date(from: String(value.prefix(10))) != nil
193+}
194+
186195 func newJSONDecoder() -> JSONDecoder {
187196 let decoder = JSONDecoder()
188197 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
189198 let container = try decoder.singleValueContainer()
190199 let dateStr = try container.decode(String.self).uppercased()
200+ guard isValidDate(dateStr) else {
201+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
202+ }
191203
192204 let formatter = DateFormatter()
193205 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/b6f2c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/b6fe5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/b9f64.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/bb1ec.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/be234.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/c0356.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/c0a3a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/c3303.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/c6cfd.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/c8c7e.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cb0cc.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cb81e.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ccd18.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cd238.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cd463.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cda6c.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/cf0d8.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/cfbce.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/d0908.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/d23d5.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -182,11 +182,23 @@ extension Result {
182182
183183 // MARK: - Helper functions for creating encoders and decoders
184184
185+private func isValidDate(_ value: String) -> Bool {
186+ let formatter = DateFormatter()
187+ formatter.locale = Locale(identifier: "en_US_POSIX")
188+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
189+ formatter.dateFormat = "u-MM-dd"
190+ formatter.isLenient = false
191+ return formatter.date(from: String(value.prefix(10))) != nil
192+}
193+
185194 func newJSONDecoder() -> JSONDecoder {
186195 let decoder = JSONDecoder()
187196 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
188197 let container = try decoder.singleValueContainer()
189198 let dateStr = try container.decode(String.self).uppercased()
199+ guard isValidDate(dateStr) else {
200+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
201+ }
190202
191203 let formatter = DateFormatter()
192204 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/dbfb3.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -812,11 +812,23 @@ extension Wind {
812812
813813 // MARK: - Helper functions for creating encoders and decoders
814814
815+private func isValidDate(_ value: String) -> Bool {
816+ let formatter = DateFormatter()
817+ formatter.locale = Locale(identifier: "en_US_POSIX")
818+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
819+ formatter.dateFormat = "u-MM-dd"
820+ formatter.isLenient = false
821+ return formatter.date(from: String(value.prefix(10))) != nil
822+}
823+
815824 func newJSONDecoder() -> JSONDecoder {
816825 let decoder = JSONDecoder()
817826 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
818827 let container = try decoder.singleValueContainer()
819828 let dateStr = try container.decode(String.self).uppercased()
829+ guard isValidDate(dateStr) else {
830+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
831+ }
820832
821833 let formatter = DateFormatter()
822834 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/dc44f.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/dd1ce.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/dec3a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/df957.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -807,11 +807,23 @@ extension Wind {
807807
808808 // MARK: - Helper functions for creating encoders and decoders
809809
810+private func isValidDate(_ value: String) -> Bool {
811+ let formatter = DateFormatter()
812+ formatter.locale = Locale(identifier: "en_US_POSIX")
813+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
814+ formatter.dateFormat = "u-MM-dd"
815+ formatter.isLenient = false
816+ return formatter.date(from: String(value.prefix(10))) != nil
817+}
818+
810819 func newJSONDecoder() -> JSONDecoder {
811820 let decoder = JSONDecoder()
812821 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
813822 let container = try decoder.singleValueContainer()
814823 let dateStr = try container.decode(String.self).uppercased()
824+ guard isValidDate(dateStr) else {
825+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
826+ }
815827
816828 let formatter = DateFormatter()
817829 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/e0ac7.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e2915.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -811,11 +811,23 @@ extension Wind {
811811
812812 // MARK: - Helper functions for creating encoders and decoders
813813
814+private func isValidDate(_ value: String) -> Bool {
815+ let formatter = DateFormatter()
816+ formatter.locale = Locale(identifier: "en_US_POSIX")
817+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
818+ formatter.dateFormat = "u-MM-dd"
819+ formatter.isLenient = false
820+ return formatter.date(from: String(value.prefix(10))) != nil
821+}
822+
814823 func newJSONDecoder() -> JSONDecoder {
815824 let decoder = JSONDecoder()
816825 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
817826 let container = try decoder.singleValueContainer()
818827 let dateStr = try container.decode(String.self).uppercased()
828+ guard isValidDate(dateStr) else {
829+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
830+ }
819831
820832 let formatter = DateFormatter()
821833 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/misc/e2a58.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e324e.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e53b5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e64a0.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e8a0b.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/e8b04.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/ed095.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f22f5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f3139.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f3edf.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f466a.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f6a65.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f74d5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f82d9.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/f974d.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/faff5.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/fcca3.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/misc/fd329.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/blns-object.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug2037.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug2521.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug2590.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -103,11 +103,23 @@ extension Invoice {
103103
104104 // MARK: - Helper functions for creating encoders and decoders
105105
106+private func isValidDate(_ value: String) -> Bool {
107+ let formatter = DateFormatter()
108+ formatter.locale = Locale(identifier: "en_US_POSIX")
109+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
110+ formatter.dateFormat = "u-MM-dd"
111+ formatter.isLenient = false
112+ return formatter.date(from: String(value.prefix(10))) != nil
113+}
114+
106115 func newJSONDecoder() -> JSONDecoder {
107116 let decoder = JSONDecoder()
108117 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
109118 let container = try decoder.singleValueContainer()
110119 let dateStr = try container.decode(String.self).uppercased()
120+ guard isValidDate(dateStr) else {
121+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
122+ }
111123
112124 let formatter = DateFormatter()
113125 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/bug2663.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -59,11 +59,23 @@ extension TopLevel {
5959
6060 // MARK: - Helper functions for creating encoders and decoders
6161
62+private func isValidDate(_ value: String) -> Bool {
63+ let formatter = DateFormatter()
64+ formatter.locale = Locale(identifier: "en_US_POSIX")
65+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
66+ formatter.dateFormat = "u-MM-dd"
67+ formatter.isLenient = false
68+ return formatter.date(from: String(value.prefix(10))) != nil
69+}
70+
6271 func newJSONDecoder() -> JSONDecoder {
6372 let decoder = JSONDecoder()
6473 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
6574 let container = try decoder.singleValueContainer()
6675 let dateStr = try container.decode(String.self).uppercased()
76+ guard isValidDate(dateStr) else {
77+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
78+ }
6779
6880 let formatter = DateFormatter()
6981 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/bug2793.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug427.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug790.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug855-short.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/bug863.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/coin-pairs.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/combinations1.json

4 generated files · +12 −12
Mjava-lombokarray-type-array__lombok-true--0be7469ef837 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavaarray-type-array--eed288b23e27 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/combinations2.json

4 generated files · +12 −12
Mjava-lombokarray-type-array__lombok-true--0be7469ef837 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavaarray-type-array--eed288b23e27 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/combinations3.json

4 generated files · +12 −12
Mjava-lombokarray-type-array__lombok-true--0be7469ef837 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavaarray-type-array--eed288b23e27 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/combinations4.json

4 generated files · +12 −12
Mjava-lombokarray-type-array__lombok-true--0be7469ef837 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavaarray-type-array--eed288b23e27 / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/combined-enum.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/direct-recursive.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/empty-enum.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/identifiers.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/issue2680-object-array.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/issue2680-scalar-array.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/keywords.json

6 generated files · +56 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -17480,11 +17480,23 @@ extension Yield {
1748017480
1748117481 // MARK: - Helper functions for creating encoders and decoders
1748217482
17483+private func isValidDate(_ value: String) -> Bool {
17484+ let formatter = DateFormatter()
17485+ formatter.locale = Locale(identifier: "en_US_POSIX")
17486+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
17487+ formatter.dateFormat = "u-MM-dd"
17488+ formatter.isLenient = false
17489+ return formatter.date(from: String(value.prefix(10))) != nil
17490+}
17491+
1748317492 func newJSONDecoder() -> JSONDecoder {
1748417493 let decoder = JSONDecoder()
1748517494 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1748617495 let container = try decoder.singleValueContainer()
1748717496 let dateStr = try container.decode(String.self).uppercased()
17497+ guard isValidDate(dateStr) else {
17498+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
17499+ }
1748817500
1748917501 let formatter = DateFormatter()
1749017502 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftobjective-c-support-true__struct-or-class-class--f14372afa3e4 / quicktype.swift+12 −0
@@ -19663,11 +19663,23 @@ extension Yield {
1966319663
1966419664 // MARK: - Helper functions for creating encoders and decoders
1966519665
19666+private func isValidDate(_ value: String) -> Bool {
19667+ let formatter = DateFormatter()
19668+ formatter.locale = Locale(identifier: "en_US_POSIX")
19669+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
19670+ formatter.dateFormat = "u-MM-dd"
19671+ formatter.isLenient = false
19672+ return formatter.date(from: String(value.prefix(10))) != nil
19673+}
19674+
1966619675 func newJSONDecoder() -> JSONDecoder {
1966719676 let decoder = JSONDecoder()
1966819677 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1966919678 let container = try decoder.singleValueContainer()
1967019679 let dateStr = try container.decode(String.self).uppercased()
19680+ guard isValidDate(dateStr) else {
19681+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
19682+ }
1967119683
1967219684 let formatter = DateFormatter()
1967319685 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftprotocol-equatable--bd9068f466c1 / quicktype.swift+12 −0
@@ -19664,11 +19664,23 @@ extension Yield {
1966419664
1966519665 // MARK: - Helper functions for creating encoders and decoders
1966619666
19667+private func isValidDate(_ value: String) -> Bool {
19668+ let formatter = DateFormatter()
19669+ formatter.locale = Locale(identifier: "en_US_POSIX")
19670+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
19671+ formatter.dateFormat = "u-MM-dd"
19672+ formatter.isLenient = false
19673+ return formatter.date(from: String(value.prefix(10))) != nil
19674+}
19675+
1966719676 func newJSONDecoder() -> JSONDecoder {
1966819677 let decoder = JSONDecoder()
1966919678 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1967019679 let container = try decoder.singleValueContainer()
1967119680 let dateStr = try container.decode(String.self).uppercased()
19681+ guard isValidDate(dateStr) else {
19682+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
19683+ }
1967219684
1967319685 let formatter = DateFormatter()
1967419686 formatter.calendar = Calendar(identifier: .iso8601)
Mswiftsendable-true--1c3982c78639 / quicktype.swift+12 −0
@@ -17480,11 +17480,23 @@ extension Yield {
1748017480
1748117481 // MARK: - Helper functions for creating encoders and decoders
1748217482
17483+private func isValidDate(_ value: String) -> Bool {
17484+ let formatter = DateFormatter()
17485+ formatter.locale = Locale(identifier: "en_US_POSIX")
17486+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
17487+ formatter.dateFormat = "u-MM-dd"
17488+ formatter.isLenient = false
17489+ return formatter.date(from: String(value.prefix(10))) != nil
17490+}
17491+
1748317492 func newJSONDecoder() -> JSONDecoder {
1748417493 let decoder = JSONDecoder()
1748517494 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
1748617495 let container = try decoder.singleValueContainer()
1748717496 let dateStr = try container.decode(String.self).uppercased()
17497+ guard isValidDate(dateStr) else {
17498+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
17499+ }
1748817500
1748917501 let formatter = DateFormatter()
1749017502 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/priority/kotlin-enum-class-case-collision.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/list.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/name-style.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/nbl-stats.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/nested-objects.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/no-classes.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/nst-test-suite.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/number-map.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/omit-empty.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/optional-union.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/php-mixed-union.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/php-validation.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/recursive.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/simple-identifiers.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/union-constructor-clash.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/unions.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/url.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/priority/uuids.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/bitcoin-block.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/copy-with-property.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/getting-started.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/github-events.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -1659,11 +1659,23 @@ extension Array where Element == TopLevel.Element {
16591659
16601660 // MARK: - Helper functions for creating encoders and decoders
16611661
1662+private func isValidDate(_ value: String) -> Bool {
1663+ let formatter = DateFormatter()
1664+ formatter.locale = Locale(identifier: "en_US_POSIX")
1665+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
1666+ formatter.dateFormat = "u-MM-dd"
1667+ formatter.isLenient = false
1668+ return formatter.date(from: String(value.prefix(10))) != nil
1669+}
1670+
16621671 func newJSONDecoder() -> JSONDecoder {
16631672 let decoder = JSONDecoder()
16641673 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
16651674 let container = try decoder.singleValueContainer()
16661675 let dateStr = try container.decode(String.self).uppercased()
1676+ guard isValidDate(dateStr) else {
1677+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
1678+ }
16671679
16681680 let formatter = DateFormatter()
16691681 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/samples/kitchen-sink.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/null-safe.json

3 generated files · +20 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mjavadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mswiftdefault / quicktype.swift+12 −0
@@ -159,11 +159,23 @@ extension Address {
159159
160160 // MARK: - Helper functions for creating encoders and decoders
161161
162+private func isValidDate(_ value: String) -> Bool {
163+ let formatter = DateFormatter()
164+ formatter.locale = Locale(identifier: "en_US_POSIX")
165+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
166+ formatter.dateFormat = "u-MM-dd"
167+ formatter.isLenient = false
168+ return formatter.date(from: String(value.prefix(10))) != nil
169+}
170+
162171 func newJSONDecoder() -> JSONDecoder {
163172 let decoder = JSONDecoder()
164173 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
165174 let container = try decoder.singleValueContainer()
166175 let dateStr = try container.decode(String.self).uppercased()
176+ guard isValidDate(dateStr) else {
177+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
178+ }
167179
168180 let formatter = DateFormatter()
169181 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/json/samples/objc-control-characters.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/pokedex.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/reddit.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/simple-object.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/spotify-album.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/us-avg-temperatures.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/json/samples/us-senators.json

2 generated files · +6 −6
Mjava-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mjavadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/accessors.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/all-of-additional-properties-false.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/any.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/bool-string.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/boolean-subschema.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/camelCase.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/class-map-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/class-with-additional.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/comment-injection-enum-nested-comment.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/comment-injection-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/comment-injection-nested-comment.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/comment-injection.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/const-non-string.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/constructor.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/cut-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/date-time-or-string.schema

3 generated files · +20 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -87,11 +87,23 @@ enum BarEnum: String, Codable {
8787
8888 // MARK: - Helper functions for creating encoders and decoders
8989
90+private func isValidDate(_ value: String) -> Bool {
91+ let formatter = DateFormatter()
92+ formatter.locale = Locale(identifier: "en_US_POSIX")
93+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
94+ formatter.dateFormat = "u-MM-dd"
95+ formatter.isLenient = false
96+ return formatter.date(from: String(value.prefix(10))) != nil
97+}
98+
9099 func newJSONDecoder() -> JSONDecoder {
91100 let decoder = JSONDecoder()
92101 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
93102 let container = try decoder.singleValueContainer()
94103 let dateStr = try container.decode(String.self).uppercased()
104+ guard isValidDate(dateStr) else {
105+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
106+ }
95107
96108 let formatter = DateFormatter()
97109 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/schema/date-time.schema

3 generated files · +20 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -248,11 +248,23 @@ extension OffsetTime {
248248
249249 // MARK: - Helper functions for creating encoders and decoders
250250
251+private func isValidDate(_ value: String) -> Bool {
252+ let formatter = DateFormatter()
253+ formatter.locale = Locale(identifier: "en_US_POSIX")
254+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
255+ formatter.dateFormat = "u-MM-dd"
256+ formatter.isLenient = false
257+ return formatter.date(from: String(value.prefix(10))) != nil
258+}
259+
251260 func newJSONDecoder() -> JSONDecoder {
252261 let decoder = JSONDecoder()
253262 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
254263 let container = try decoder.singleValueContainer()
255264 let dateStr = try container.decode(String.self).uppercased()
265+ guard isValidDate(dateStr) else {
266+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
267+ }
256268
257269 let formatter = DateFormatter()
258270 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/schema/default-value.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/description-with-double-quotes.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/description.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/direct-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/empty-object.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/enum-large.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/enum-with-null.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/enum-with-values.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/fractional-bounds.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/go-schema-pattern-properties.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/haskell-enum-forbidden.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/id-no-address.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/id-root.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/ie-suffix-singularization.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/implicit-all-of.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/implicit-class-array-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/implicit-one-of.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/integer-before-number.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/integer-float-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/integer-string.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/integer-type.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/intersection-nested.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/intersection.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/issue2680-top-level-array.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/keyword-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/keyword-unions.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/light.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/list.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/min-max-items.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/minmax-integer.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/minmax.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/minmaxlength.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/multi-type-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/mutually-recursive.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/nested-intersection-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/non-standard-ref.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/nullable-optional-one-of.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/object-type-required.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/optional-any.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/optional-const-ref.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/optional-constraints.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/optional-date-time.schema

3 generated files · +20 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+4 −3
@@ -37,10 +37,11 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
44+ .withResolverStyle(java.time.format.ResolverStyle.STRICT)
4445 .withZone(ZoneOffset.UTC);
4546
4647 public static OffsetDateTime parseDateTimeString(String str) {
Mschema-swiftdefault / quicktype.swift+12 −0
@@ -71,11 +71,23 @@ extension TopLevel {
7171
7272 // MARK: - Helper functions for creating encoders and decoders
7373
74+private func isValidDate(_ value: String) -> Bool {
75+ let formatter = DateFormatter()
76+ formatter.locale = Locale(identifier: "en_US_POSIX")
77+ formatter.timeZone = TimeZone(secondsFromGMT: 0)
78+ formatter.dateFormat = "u-MM-dd"
79+ formatter.isLenient = false
80+ return formatter.date(from: String(value.prefix(10))) != nil
81+}
82+
7483 func newJSONDecoder() -> JSONDecoder {
7584 let decoder = JSONDecoder()
7685 decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
7786 let container = try decoder.singleValueContainer()
7887 let dateStr = try container.decode(String.self).uppercased()
88+ guard isValidDate(dateStr) else {
89+ throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
90+ }
7991
8092 let formatter = DateFormatter()
8193 formatter.calendar = Calendar(identifier: .iso8601)
Test case

test/inputs/schema/optional-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/pattern.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/postman-collection.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/prefix-items.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/recursive-union-flattening.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/ref-id-files.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/ref-remote.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/renaming-bug.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/required-draft3.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/required-non-properties.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/required.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/rust-cycle-breaker-union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/schema-constraints.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/simple-ref.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/strict-optional.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/top-level-array.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/top-level-enum.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/top-level-primitive-array.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/top-level-primitive.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/tuple.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/unevaluated-properties.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/unicode-codepoint-length.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/union-int-double.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/union-list.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/union.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/uuid.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Test case

test/inputs/schema/vega-lite.schema

2 generated files · +6 −6
Mschema-java-lombokdefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
Mschema-javadefault / src / main / java / io / quicktype / Converter.java+3 −3
@@ -37,9 +37,9 @@ public class Converter {
3737 .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
3838 .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
3939 .appendOptional(DateTimeFormatter.ISO_INSTANT)
40- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
41- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
42- .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
40+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
41+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
42+ .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
4343 .toFormatter()
4444 .withZone(ZoneOffset.UTC);
No generated files match these filters.