diff --git a/base/graphql-java/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/graphql-java/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/graphql-java/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github1.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github2.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github3.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github4.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github5.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github6.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github7.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github8.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/graphql-java-lombok/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java b/head/graphql-java-lombok/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/graphql-java-lombok/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
+++ b/head/graphql-java-lombok/test/inputs/graphql/github9.graphql/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..587fb2b 100644
--- a/base/java/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..587fb2b 100644
--- a/base/java/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
index 7fe38db..5f39b60 100644
--- a/base/java/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/java/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/java/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
index 1edb170..b99bdb1 100644
--- a/base/java/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
index ac0c035..2ebd591 100644
--- a/base/java/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
index 063ae1e..e00178a 100644
--- a/base/java/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java b/head/java/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/00c36.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/00ec5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/010b1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/016af.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/033b1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/050b0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/06bee.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/07540.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0779f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/07c75.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/09f54.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0a358.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java-lombok/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0a91a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0b91a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0cffa.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0e0c2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/0fecf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/10be4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/112b5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/127a1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/13d8d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/14d38.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/167d6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/16bc5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/176f1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/1a7f5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/1b28c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/1b409.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/2465e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/24f52.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/262f0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/26b49.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/26c9c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/27332.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/29f47.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/2d4e2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/2df80.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/31189.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/32431.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java-lombok/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/32d5c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/337ed.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/33d2e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/34702.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/3536b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/3659d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/36d5d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/3a6b3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/3e9a3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/3f1ce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/421d4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/437e7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/43970.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/43eaf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/458db.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4961a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4a0d7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4a455.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4c547.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4d6fb.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/4e336.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/54147.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/54d32.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/570ec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/5dd0d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java-lombok/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/5eae5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/5eb20.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/5f3a1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/5f7fe.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/617e8.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/61b66.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6260a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/65dec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/66121.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6617c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/67c03.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/68c30.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6c155.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6de06.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6dec6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/6eb00.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/70c77.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/734ad.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/75912.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7681c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/76ae1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..587fb2b 100644
--- a/base/java-lombok/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/77392.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7d397.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7d722.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7df41.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7dfa6.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7eb30.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java-lombok/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7f568.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/7fbfb.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/80aff.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/82509.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/8592b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/88130.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/8a62c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/908db.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9617f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/96f7c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9847b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9929c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/996bd.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9a503.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9ac3b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/9eed5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a0496.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a1eca.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a3d8c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a45b0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a71df.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/a9691.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ab0d1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/abb4b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ac944.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ad8be.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ae7f0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ae9ca.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/af2d1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..587fb2b 100644
--- a/base/java-lombok/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/b4865.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/b6f2c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/b6fe5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/b9f64.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/bb1ec.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/be234.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/c0356.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/c0a3a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/c3303.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/c6cfd.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/c8c7e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cb0cc.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cb81e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ccd18.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cd238.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cd463.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cda6c.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cf0d8.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/cfbce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/d0908.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/d23d5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/dbfb3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/dc44f.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/dd1ce.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/dec3a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/df957.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e0ac7.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e2915.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e2a58.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e324e.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e53b5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e64a0.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e8a0b.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/e8b04.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
index 7fe38db..5f39b60 100644
--- a/base/java-lombok/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/ed095.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f22f5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f3139.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f3edf.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f466a.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f6a65.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f74d5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f82d9.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/f974d.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/faff5.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/fcca3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/misc/fd329.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/blns-object.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug2037.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug2521.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/java-lombok/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug2590.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/java-lombok/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug2663.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug2793.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug427.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug790.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
index 1edb170..b99bdb1 100644
--- a/base/java-lombok/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug855-short.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/bug863.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/coin-pairs.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations1.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations1.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
index 7efa2e3..b750e27 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations1.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations1.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations1.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations2.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations2.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
index 7efa2e3..b750e27 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations2.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations2.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations2.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations3.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations3.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
index 7efa2e3..b750e27 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations3.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations3.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations3.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations4.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations4.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
index 7efa2e3..b750e27 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations4.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations4.json/array-type-array__lombok-true--0be7469ef837/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combinations4.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/combined-enum.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/direct-recursive.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/empty-enum.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/identifiers.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/issue2680-object-array.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
index ac0c035..2ebd591 100644
--- a/base/java-lombok/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/issue2680-scalar-array.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/keywords.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/java-lombok/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/list.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/name-style.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/nbl-stats.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/nested-objects.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
index 063ae1e..e00178a 100644
--- a/base/java-lombok/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/no-classes.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/nst-test-suite.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/number-map.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/omit-empty.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/java-lombok/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/optional-union.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/php-mixed-union.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/php-validation.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/recursive.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/simple-identifiers.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/union-constructor-clash.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/unions.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/url.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/priority/uuids.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/bitcoin-block.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/copy-with-property.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/java-lombok/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/getting-started.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..7c27f8b 100644
--- a/base/java-lombok/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/github-events.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/kitchen-sink.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/java-lombok/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/null-safe.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/java-lombok/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/objc-control-characters.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/pokedex.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/reddit.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/simple-object.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/spotify-album.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/us-avg-temperatures.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/java-lombok/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java b/head/java-lombok/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/java-lombok/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
+++ b/head/java-lombok/test/inputs/json/samples/us-senators.json/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/schema-java/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/schema-java/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
index a181475..5fd2aa6 100644
--- a/base/schema-java/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
index ac0c035..2ebd591 100644
--- a/base/schema-java/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/schema-java/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/schema-java/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
index 9e943dd..d6fde64 100644
--- a/base/schema-java/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
index 9a51c97..6873a96 100644
--- a/base/schema-java/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/schema-java/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/accessors.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/all-of-additional-properties-false.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/any.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/bool-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/boolean-subschema.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/camelCase.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/class-map-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/class-with-additional.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/comment-injection-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/comment-injection-nested-comment.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/comment-injection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/const-non-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/constructor.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/cut-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/schema-java-lombok/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/date-time-or-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java-lombok/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..a4a5e87 100644
--- a/base/schema-java-lombok/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/date-time.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java-lombok/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/default-value.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/description-with-double-quotes.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/description.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/direct-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
index a181475..5fd2aa6 100644
--- a/base/schema-java-lombok/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/empty-object.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/enum-large.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/enum-with-null.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/enum-with-values.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/fractional-bounds.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/go-schema-pattern-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/haskell-enum-forbidden.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/id-no-address.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/id-root.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/ie-suffix-singularization.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/implicit-all-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/implicit-class-array-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/implicit-one-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/integer-before-number.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/integer-float-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/integer-string.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/integer-type.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/intersection-nested.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/intersection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
index ac0c035..2ebd591 100644
--- a/base/schema-java-lombok/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/issue2680-top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/keyword-unions.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/light.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/list.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/min-max-items.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/minmax-integer.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/minmax.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/minmaxlength.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/multi-type-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/mutually-recursive.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/nested-intersection-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/non-standard-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/nullable-optional-one-of.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/object-type-required.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/optional-any.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/optional-const-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/optional-constraints.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..daa0d16 100644
--- a/base/schema-java-lombok/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/optional-date-time.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,10 +37,11 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
+            .withResolverStyle(java.time.format.ResolverStyle.STRICT)
             .withZone(ZoneOffset.UTC);
 
     public static OffsetDateTime parseDateTimeString(String str) {
diff --git a/base/schema-java-lombok/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/optional-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/pattern.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/postman-collection.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/prefix-items.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/recursive-union-flattening.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/ref-id-files.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/ref-remote.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/renaming-bug.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/required-draft3.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/required-non-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/required.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/rust-cycle-breaker-union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/schema-constraints.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/simple-ref.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/strict-optional.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
index 68711e0..a41cb27 100644
--- a/base/schema-java-lombok/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/top-level-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/top-level-enum.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
index 9e943dd..d6fde64 100644
--- a/base/schema-java-lombok/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/top-level-primitive-array.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
index 9a51c97..6873a96 100644
--- a/base/schema-java-lombok/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/top-level-primitive.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/tuple.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/unevaluated-properties.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/unicode-codepoint-length.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
index d243dc1..89b2857 100644
--- a/base/schema-java-lombok/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/union-int-double.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/union-list.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
index 5e06a6e..68d2d77 100644
--- a/base/schema-java-lombok/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/union.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/uuid.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-java-lombok/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java b/head/schema-java-lombok/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
index cf0c886..eee683b 100644
--- a/base/schema-java-lombok/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
+++ b/head/schema-java-lombok/test/inputs/schema/vega-lite.schema/default/src/main/java/io/quicktype/Converter.java
@@ -37,9 +37,9 @@ public class Converter {
             .appendOptional(DateTimeFormatter.ISO_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
             .appendOptional(DateTimeFormatter.ISO_INSTANT)
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX"))
-            .appendOptional(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ssX"))
+            .appendOptional(DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
             .toFormatter()
             .withZone(ZoneOffset.UTC);
 
diff --git a/base/schema-swift/test/inputs/schema/date-time-or-string.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/date-time-or-string.schema/default/quicktype.swift
index b215321..723437a 100644
--- a/base/schema-swift/test/inputs/schema/date-time-or-string.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/date-time-or-string.schema/default/quicktype.swift
@@ -87,11 +87,23 @@ enum BarEnum: String, Codable {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/date-time.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/date-time.schema/default/quicktype.swift
index ca837b9..8e8d8f0 100644
--- a/base/schema-swift/test/inputs/schema/date-time.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/date-time.schema/default/quicktype.swift
@@ -248,11 +248,23 @@ extension OffsetTime {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/optional-date-time.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/optional-date-time.schema/default/quicktype.swift
index f82c168..9f428c8 100644
--- a/base/schema-swift/test/inputs/schema/optional-date-time.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/optional-date-time.schema/default/quicktype.swift
@@ -71,11 +71,23 @@ extension TopLevel {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0a358.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0a358.json/default/quicktype.swift
index 09fbaf5..5d69c27 100644
--- a/base/swift/test/inputs/json/misc/0a358.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0a358.json/default/quicktype.swift
@@ -182,11 +182,23 @@ extension Result {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0a91a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0a91a.json/default/quicktype.swift
index e424526..8095f0e 100644
--- a/base/swift/test/inputs/json/misc/0a91a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0a91a.json/default/quicktype.swift
@@ -1238,11 +1238,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/16bc5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/16bc5.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/16bc5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/16bc5.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/262f0.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/262f0.json/default/quicktype.swift
index 10cb7cf..a9bf58f 100644
--- a/base/swift/test/inputs/json/misc/262f0.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/262f0.json/default/quicktype.swift
@@ -813,11 +813,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/32d5c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/32d5c.json/default/quicktype.swift
index bc6d323..57c5545 100644
--- a/base/swift/test/inputs/json/misc/32d5c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/32d5c.json/default/quicktype.swift
@@ -106,11 +106,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/337ed.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/337ed.json/default/quicktype.swift
index 6b3dfb2..6ad0786 100644
--- a/base/swift/test/inputs/json/misc/337ed.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/337ed.json/default/quicktype.swift
@@ -374,11 +374,23 @@ enum ResultType: String, Codable {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/3f1ce.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/3f1ce.json/default/quicktype.swift
index 2f6cea9..4b8a940 100644
--- a/base/swift/test/inputs/json/misc/3f1ce.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/3f1ce.json/default/quicktype.swift
@@ -811,11 +811,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4c547.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4c547.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/4c547.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4c547.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/54d32.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/54d32.json/default/quicktype.swift
index b13897c..a8e9854 100644
--- a/base/swift/test/inputs/json/misc/54d32.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/54d32.json/default/quicktype.swift
@@ -187,11 +187,23 @@ enum Status: String, Codable {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/5eae5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/5eae5.json/default/quicktype.swift
index 3e13dae..bc68b71 100644
--- a/base/swift/test/inputs/json/misc/5eae5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/5eae5.json/default/quicktype.swift
@@ -90,11 +90,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6dec6.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6dec6.json/default/quicktype.swift
index 62fd053..935c993 100644
--- a/base/swift/test/inputs/json/misc/6dec6.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6dec6.json/default/quicktype.swift
@@ -813,11 +813,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/734ad.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/734ad.json/default/quicktype.swift
index f71745a..8928c9f 100644
--- a/base/swift/test/inputs/json/misc/734ad.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/734ad.json/default/quicktype.swift
@@ -395,11 +395,23 @@ enum Status: String, Codable {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/77392.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/77392.json/default/quicktype.swift
index b036295..1881116 100644
--- a/base/swift/test/inputs/json/misc/77392.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/77392.json/default/quicktype.swift
@@ -132,11 +132,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7f568.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7f568.json/default/quicktype.swift
index a0a4367..186e9f2 100644
--- a/base/swift/test/inputs/json/misc/7f568.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7f568.json/default/quicktype.swift
@@ -206,11 +206,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/80aff.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/80aff.json/default/quicktype.swift
index c73e70a..322e204 100644
--- a/base/swift/test/inputs/json/misc/80aff.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/80aff.json/default/quicktype.swift
@@ -186,11 +186,23 @@ extension Result {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/88130.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/88130.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/88130.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/88130.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9929c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9929c.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/9929c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9929c.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9ac3b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9ac3b.json/default/quicktype.swift
index f77f3f2..66bbd83 100644
--- a/base/swift/test/inputs/json/misc/9ac3b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9ac3b.json/default/quicktype.swift
@@ -212,11 +212,23 @@ enum Title: String, Codable {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a0496.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a0496.json/default/quicktype.swift
index 5eae517..b6e1a21 100644
--- a/base/swift/test/inputs/json/misc/a0496.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a0496.json/default/quicktype.swift
@@ -193,11 +193,23 @@ extension Errors {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a1eca.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a1eca.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/a1eca.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a1eca.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/b4865.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/b4865.json/default/quicktype.swift
index 8144a0b..8720b89 100644
--- a/base/swift/test/inputs/json/misc/b4865.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/b4865.json/default/quicktype.swift
@@ -183,11 +183,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cf0d8.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cf0d8.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/cf0d8.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cf0d8.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/d23d5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/d23d5.json/default/quicktype.swift
index 8dc2f7f..dbcc155 100644
--- a/base/swift/test/inputs/json/misc/d23d5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/d23d5.json/default/quicktype.swift
@@ -182,11 +182,23 @@ extension Result {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/dbfb3.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/dbfb3.json/default/quicktype.swift
index 813fae5..1dc1e53 100644
--- a/base/swift/test/inputs/json/misc/dbfb3.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/dbfb3.json/default/quicktype.swift
@@ -812,11 +812,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/df957.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/df957.json/default/quicktype.swift
index ff8fe52..c64029f 100644
--- a/base/swift/test/inputs/json/misc/df957.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/df957.json/default/quicktype.swift
@@ -807,11 +807,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e2915.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e2915.json/default/quicktype.swift
index 5b2538e..d1e9958 100644
--- a/base/swift/test/inputs/json/misc/e2915.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e2915.json/default/quicktype.swift
@@ -811,11 +811,23 @@ extension Wind {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug2590.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug2590.json/default/quicktype.swift
index a832597..6c9b21b 100644
--- a/base/swift/test/inputs/json/priority/bug2590.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug2590.json/default/quicktype.swift
@@ -103,11 +103,23 @@ extension Invoice {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug2663.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug2663.json/default/quicktype.swift
index 204a87d..bc52953 100644
--- a/base/swift/test/inputs/json/priority/bug2663.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug2663.json/default/quicktype.swift
@@ -59,11 +59,23 @@ extension TopLevel {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
index f57dd74..b1ac4c0 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/default/quicktype.swift
@@ -17480,11 +17480,23 @@ extension Yield {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
index 58349c0..a6d4421 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/objective-c-support-true__struct-or-class-class--f14372afa3e4/quicktype.swift
@@ -19663,11 +19663,23 @@ extension Yield {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/keywords.json/protocol-equatable--bd9068f466c1/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/protocol-equatable--bd9068f466c1/quicktype.swift
index 2f3b7b0..332ae5c 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/protocol-equatable--bd9068f466c1/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/protocol-equatable--bd9068f466c1/quicktype.swift
@@ -19664,11 +19664,23 @@ extension Yield {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/keywords.json/sendable-true--1c3982c78639/quicktype.swift b/head/swift/test/inputs/json/priority/keywords.json/sendable-true--1c3982c78639/quicktype.swift
index 229abcb..dbbd761 100644
--- a/base/swift/test/inputs/json/priority/keywords.json/sendable-true--1c3982c78639/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/keywords.json/sendable-true--1c3982c78639/quicktype.swift
@@ -17480,11 +17480,23 @@ extension Yield {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/github-events.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/github-events.json/default/quicktype.swift
index 06b8284..b8f1530 100644
--- a/base/swift/test/inputs/json/samples/github-events.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/github-events.json/default/quicktype.swift
@@ -1659,11 +1659,23 @@ extension Array where Element == TopLevel.Element {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/null-safe.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/null-safe.json/default/quicktype.swift
index 43044f6..7c8aa54 100644
--- a/base/swift/test/inputs/json/samples/null-safe.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/null-safe.json/default/quicktype.swift
@@ -159,11 +159,23 @@ extension Address {
 
 // MARK: - Helper functions for creating encoders and decoders
 
+private func isValidDate(_ value: String) -> Bool {
+    let formatter = DateFormatter()
+    formatter.locale = Locale(identifier: "en_US_POSIX")
+    formatter.timeZone = TimeZone(secondsFromGMT: 0)
+    formatter.dateFormat = "u-MM-dd"
+    formatter.isLenient = false
+    return formatter.date(from: String(value.prefix(10))) != nil
+}
+
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
         let dateStr = try container.decode(String.self).uppercased()
+        guard isValidDate(dateStr) else {
+            throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid date"))
+        }
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
