diff --git a/base/cplusplus/test/inputs/json/misc/0a358.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/0a358.json/default/quicktype.hpp
index 8bd502a..a3aea38 100644
--- a/base/cplusplus/test/inputs/json/misc/0a358.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/0a358.json/default/quicktype.hpp
@@ -149,12 +149,12 @@ namespace quicktype {
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_code(j.at("code").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         if (j.find("id") != j.end() && !j.at("id").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_id(j.at("id").get<int64_t>());
         x.set_name(j.at("name").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/0a91a.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/0a91a.json/default/quicktype.hpp
index a63be40..d1db62b 100644
--- a/base/cplusplus/test/inputs/json/misc/0a91a.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/0a91a.json/default/quicktype.hpp
@@ -1243,7 +1243,7 @@ namespace quicktype {
         x.set_compare_url(j.at("compare_url").get<std::string>());
         x.set_contents_url(j.at("contents_url").get<std::string>());
         x.set_contributors_url(j.at("contributors_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_default_branch(j.at("default_branch").get<std::string>());
         x.set_deployments_url(j.at("deployments_url").get<std::string>());
@@ -1289,7 +1289,7 @@ namespace quicktype {
         x.set_open_issues_count(j.at("open_issues_count").get<int64_t>());
         x.set_owner(j.at("owner").get<MergedBy>());
         x.set_pulls_url(j.at("pulls_url").get<std::string>());
-        if (j.find("pushed_at") != j.end() && !std::regex_match(j.at("pushed_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("pushed_at") != j.end() && !std::regex_match(j.at("pushed_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_pushed_at(j.at("pushed_at").get<std::string>());
         x.set_releases_url(j.at("releases_url").get<std::string>());
         x.set_repo_private(j.at("private").get<bool>());
@@ -1306,7 +1306,7 @@ namespace quicktype {
         x.set_tags_url(j.at("tags_url").get<std::string>());
         x.set_teams_url(j.at("teams_url").get<std::string>());
         x.set_trees_url(j.at("trees_url").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         if (j.find("watchers") != j.end() && !j.at("watchers").is_number_integer()) throw std::runtime_error("Expected integer");
@@ -1450,7 +1450,7 @@ namespace quicktype {
         x.set_body(j.at("body").get<std::string>());
         if (j.find("changed_files") != j.end() && !j.at("changed_files").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_changed_files(j.at("changed_files").get<int64_t>());
-        if (j.find("closed_at") != j.end() && !std::regex_match(j.at("closed_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("closed_at") != j.end() && !std::regex_match(j.at("closed_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_closed_at(j.at("closed_at").get<std::string>());
         if (j.find("comments") != j.end() && !j.at("comments").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_comments(j.at("comments").get<int64_t>());
@@ -1458,7 +1458,7 @@ namespace quicktype {
         if (j.find("commits") != j.end() && !j.at("commits").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_commits(j.at("commits").get<int64_t>());
         x.set_commits_url(j.at("commits_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         if (j.find("deletions") != j.end() && !j.at("deletions").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_deletions(j.at("deletions").get<int64_t>());
@@ -1475,7 +1475,7 @@ namespace quicktype {
         x.set_mergeable(get_untyped(j, "mergeable"));
         x.set_mergeable_state(j.at("mergeable_state").get<std::string>());
         x.set_merged(j.at("merged").get<bool>());
-        if (j.find("merged_at") != j.end() && !std::regex_match(j.at("merged_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("merged_at") != j.end() && !std::regex_match(j.at("merged_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_merged_at(j.at("merged_at").get<std::string>());
         x.set_merged_by(j.at("merged_by").get<MergedBy>());
         x.set_milestone(get_untyped(j, "milestone"));
@@ -1491,7 +1491,7 @@ namespace quicktype {
         x.set_state(j.at("state").get<std::string>());
         x.set_statuses_url(j.at("statuses_url").get<std::string>());
         x.set_title(j.at("title").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         x.set_user(j.at("user").get<MergedBy>());
@@ -1613,7 +1613,7 @@ namespace quicktype {
     inline void from_json(const json & j, TopLevelElement& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_actor(j.at("actor").get<Actor>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
         if (j.find("org") != j.end() && j.at("org").is_null()) throw std::runtime_error("Unexpected null");
diff --git a/base/cplusplus/test/inputs/json/misc/16bc5.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/16bc5.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/16bc5.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/16bc5.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/262f0.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/262f0.json/default/quicktype.hpp
index 8e31cc4..181adf9 100644
--- a/base/cplusplus/test/inputs/json/misc/262f0.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/262f0.json/default/quicktype.hpp
@@ -716,7 +716,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
index d54076c..8d9dc57 100644
--- a/base/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/337ed.json/default/quicktype.hpp
@@ -386,13 +386,13 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("amount") != j.end() && !j.at("amount").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_amount(j.at("amount").get<int64_t>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
         x.set_name(j.at("name").get<std::string>());
         x.set_status(j.at("status").get<Status>());
         x.set_type(j.at("type").get<CustomIncomeType>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
@@ -417,12 +417,12 @@ namespace quicktype {
         x.set_cost_max(get_stack_optional<int64_t>(j, "cost_max"));
         j.at("cost_min");
         x.set_cost_min(get_stack_optional<int64_t>(j, "cost_min"));
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_custom_incomes(j.at("customIncomes").get<std::vector<CustomIncome>>());
         x.set_direct_rep_costs_max(get_untyped(j, "direct_rep_costs_max"));
         x.set_direct_rep_costs_min(get_untyped(j, "direct_rep_costs_min"));
-        if (j.find("end_date") != j.end() && !std::regex_match(j.at("end_date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("end_date") != j.end() && !std::regex_match(j.at("end_date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_end_date(j.at("end_date").get<std::string>());
         if (j.find("eur_sources_grants") != j.end() && !j.at("eur_sources_grants").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_eur_sources_grants(j.at("eur_sources_grants").get<int64_t>());
@@ -451,7 +451,7 @@ namespace quicktype {
         j.at("public_financing_total");
         x.set_public_financing_total(get_stack_optional<int64_t>(j, "public_financing_total"));
         x.set_representative(j.at("representative").get<std::string>());
-        if (j.find("start_date") != j.end() && !std::regex_match(j.at("start_date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("start_date") != j.end() && !std::regex_match(j.at("start_date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_start_date(j.at("start_date").get<std::string>());
         x.set_status(j.at("status").get<Status>());
         j.at("total_budget");
@@ -463,7 +463,7 @@ namespace quicktype {
         j.at("turnover_min");
         x.set_turnover_min(get_stack_optional<int64_t>(j, "turnover_min"));
         x.set_type(j.at("type").get<ResultType>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/3f1ce.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/3f1ce.json/default/quicktype.hpp
index a154e0a..b2a3b78 100644
--- a/base/cplusplus/test/inputs/json/misc/3f1ce.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/3f1ce.json/default/quicktype.hpp
@@ -716,7 +716,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/4c547.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/4c547.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/4c547.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/4c547.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/54d32.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/54d32.json/default/quicktype.hpp
index 60351cc..30966d2 100644
--- a/base/cplusplus/test/inputs/json/misc/54d32.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/54d32.json/default/quicktype.hpp
@@ -153,13 +153,13 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
         x.set_person_id(j.at("person_id").get<std::string>());
         x.set_representative_id(j.at("representative_id").get<std::string>());
         x.set_status(j.at("status").get<Status>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
     }
 
diff --git a/base/cplusplus/test/inputs/json/misc/5eae5.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/5eae5.json/default/quicktype.hpp
index a401db6..d829583 100644
--- a/base/cplusplus/test/inputs/json/misc/5eae5.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/5eae5.json/default/quicktype.hpp
@@ -69,7 +69,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, TopLevelElement& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("Date") != j.end() && !std::regex_match(j.at("Date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("Date") != j.end() && !std::regex_match(j.at("Date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_date(j.at("Date").get<std::string>());
         if (j.find("ID") != j.end() && !j.at("ID").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_id(j.at("ID").get<int64_t>());
diff --git a/base/cplusplus/test/inputs/json/misc/6dec6.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/6dec6.json/default/quicktype.hpp
index 1aef807..32ca1d8 100644
--- a/base/cplusplus/test/inputs/json/misc/6dec6.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/6dec6.json/default/quicktype.hpp
@@ -716,7 +716,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
index 8e64a97..d2ab92f 100644
--- a/base/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/734ad.json/default/quicktype.hpp
@@ -478,7 +478,7 @@ namespace quicktype {
         x.set_code_of_conduct(j.at("code_of_conduct").get<std::string>());
         if (j.find("contact_country") != j.end() && !j.at("contact_country").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_contact_country(j.at("contact_country").get<int64_t>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_entity(j.at("entity").get<std::string>());
         x.set_goals(j.at("goals").get<std::string>());
@@ -498,7 +498,7 @@ namespace quicktype {
         x.set_id(j.at("id").get<std::string>());
         x.set_identification_code(j.at("identification_code").get<std::string>());
         x.set_info_members(j.at("info_members").get<std::string>());
-        if (j.find("last_update_date") != j.end() && !std::regex_match(j.at("last_update_date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("last_update_date") != j.end() && !std::regex_match(j.at("last_update_date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_last_update_date(j.at("last_update_date").get<std::string>());
         x.set_legal(j.at("legal").get<std::string>());
         x.set_legal_status(j.at("legal_status").get<std::string>());
@@ -524,14 +524,14 @@ namespace quicktype {
         x.set_number_of_natural_persons(get_stack_optional<int64_t>(j, "number_of_natural_persons"));
         j.at("other_code_of_conduct");
         x.set_other_code_of_conduct(get_stack_optional<std::string>(j, "other_code_of_conduct"));
-        if (j.find("registration_date") != j.end() && !std::regex_match(j.at("registration_date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("registration_date") != j.end() && !std::regex_match(j.at("registration_date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_registration_date(j.at("registration_date").get<std::string>());
         x.set_status(j.at("status").get<Status>());
         x.set_structure_members(j.at("structure_members").get<std::string>());
         if (j.find("sub_category") != j.end() && !j.at("sub_category").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_sub_category(j.at("sub_category").get<int64_t>());
         x.set_sub_category_title(j.at("sub_category_title").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
         j.at("web_site_url");
diff --git a/base/cplusplus/test/inputs/json/misc/77392.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/77392.json/default/quicktype.hpp
index b6236d5..38bac59 100644
--- a/base/cplusplus/test/inputs/json/misc/77392.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/77392.json/default/quicktype.hpp
@@ -167,7 +167,7 @@ namespace quicktype {
     inline void from_json(const json & j, TopLevelElement& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_designation(j.at("designation").get<std::string>());
-        if (j.find("discovery_date") != j.end() && !std::regex_match(j.at("discovery_date").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("discovery_date") != j.end() && !std::regex_match(j.at("discovery_date").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_discovery_date(j.at("discovery_date").get<std::string>());
         if (j.find("h_mag") != j.end() && j.at("h_mag").is_null()) throw std::runtime_error("Unexpected null");
         x.set_h_mag(get_stack_optional<std::string>(j, "h_mag"));
diff --git a/base/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
index db2a84a..817e96f 100644
--- a/base/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/7f568.json/default/quicktype.hpp
@@ -254,7 +254,7 @@ namespace quicktype {
         x.set_comments(j.at("comments").get<int64_t>());
         x.set_comments_url(j.at("comments_url").get<std::string>());
         x.set_commits_url(j.at("commits_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         j.at("description");
         x.set_description(get_stack_optional<std::string>(j, "description"));
@@ -266,7 +266,7 @@ namespace quicktype {
         x.set_id(j.at("id").get<std::string>());
         x.set_top_level_public(j.at("public").get<bool>());
         x.set_truncated(j.at("truncated").get<bool>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         x.set_user(get_untyped(j, "user"));
diff --git a/base/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
index 83e1c9b..50e3610 100644
--- a/base/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/80aff.json/default/quicktype.hpp
@@ -208,7 +208,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         if (j.find("id") != j.end() && !j.at("id").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_id(j.at("id").get<int64_t>());
@@ -217,7 +217,7 @@ namespace quicktype {
         x.set_name(j.at("name").get<std::string>());
         j.at("parent");
         x.set_parent(get_stack_optional<int64_t>(j, "parent"));
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/88130.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/88130.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/88130.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/88130.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/9929c.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/9929c.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/9929c.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/9929c.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
index fafc445..bc4104a 100644
--- a/base/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/9ac3b.json/default/quicktype.hpp
@@ -237,7 +237,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, Result& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_entity(j.at("entity").get<std::string>());
         x.set_first_name(j.at("first_name").get<std::string>());
@@ -249,7 +249,7 @@ namespace quicktype {
         x.set_status(j.at("status").get<Status>());
         j.at("title");
         x.set_title(get_stack_optional<Title>(j, "title"));
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/a0496.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/a0496.json/default/quicktype.hpp
index 2ee2f65..4156d69 100644
--- a/base/cplusplus/test/inputs/json/misc/a0496.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/a0496.json/default/quicktype.hpp
@@ -239,7 +239,7 @@ namespace quicktype {
         x.set_source_name(j.at("source_name").get<std::string>());
         x.set_to_date(j.at("to_date").get<std::string>());
         x.set_type(j.at("type").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_urlize_name(j.at("urlize_name").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/a1eca.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/a1eca.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/a1eca.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/a1eca.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/b4865.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/b4865.json/default/quicktype.hpp
index 4558b85..75d0044 100644
--- a/base/cplusplus/test/inputs/json/misc/b4865.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/b4865.json/default/quicktype.hpp
@@ -232,7 +232,7 @@ namespace quicktype {
         x.set_reclat(get_stack_optional<std::string>(j, "reclat"));
         if (j.find("reclong") != j.end() && j.at("reclong").is_null()) throw std::runtime_error("Unexpected null");
         x.set_reclong(get_stack_optional<std::string>(j, "reclong"));
-        if (j.find("year") != j.end() && !std::regex_match(j.at("year").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("year") != j.end() && !std::regex_match(j.at("year").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         if (j.find("year") != j.end() && j.at("year").is_null()) throw std::runtime_error("Unexpected null");
         x.set_year(get_stack_optional<std::string>(j, "year"));
     }
diff --git a/base/cplusplus/test/inputs/json/misc/cf0d8.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/cf0d8.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/cf0d8.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/cf0d8.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
index 972f4e8..a2058cc 100644
--- a/base/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/d23d5.json/default/quicktype.hpp
@@ -205,11 +205,11 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         j.at("acronym");
         x.set_acronym(get_stack_optional<std::string>(j, "acronym"));
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
         x.set_name(j.at("name").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_uri(j.at("uri").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/misc/dbfb3.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/dbfb3.json/default/quicktype.hpp
index a35bd4f..10d29ec 100644
--- a/base/cplusplus/test/inputs/json/misc/dbfb3.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/dbfb3.json/default/quicktype.hpp
@@ -716,7 +716,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/df957.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/df957.json/default/quicktype.hpp
index f3ba96d..bdbe623 100644
--- a/base/cplusplus/test/inputs/json/misc/df957.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/df957.json/default/quicktype.hpp
@@ -711,7 +711,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/misc/e2915.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/misc/e2915.json/default/quicktype.hpp
index 78e3b7c..83d3598 100644
--- a/base/cplusplus/test/inputs/json/misc/e2915.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/misc/e2915.json/default/quicktype.hpp
@@ -716,7 +716,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("count") != j.end() && !j.at("count").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_count(j.at("count").get<int64_t>());
-        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created") != j.end() && !std::regex_match(j.at("created").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created(j.at("created").get<std::string>());
         x.set_lang(j.at("lang").get<std::string>());
         x.set_results(j.at("results").get<Results>());
diff --git a/base/cplusplus/test/inputs/json/priority/bug2663.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/priority/bug2663.json/default/quicktype.hpp
index 9a2b953..d83bc52 100644
--- a/base/cplusplus/test/inputs/json/priority/bug2663.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/priority/bug2663.json/default/quicktype.hpp
@@ -63,7 +63,7 @@ namespace quicktype {
     inline void from_json(const json & j, TopLevel& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_birthday(j.at("birthday").get<std::string>());
-        if (j.find("lastSeen") != j.end() && !std::regex_match(j.at("lastSeen").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("lastSeen") != j.end() && !std::regex_match(j.at("lastSeen").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_last_seen(j.at("lastSeen").get<std::string>());
         x.set_name(j.at("name").get<std::string>());
     }
diff --git a/base/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
index 3b778ee..ef307ee 100644
--- a/base/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/priority/keywords.json/default/quicktype.hpp
@@ -8952,7 +8952,7 @@ namespace quicktype {
 
     inline void from_json(const json & j, DateTime& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
-        if (j.find("DateTime") != j.end() && !std::regex_match(j.at("DateTime").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("DateTime") != j.end() && !std::regex_match(j.at("DateTime").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_date_time(j.at("DateTime").get<std::string>());
     }
 
diff --git a/base/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
index e0131ae..e1e2835 100644
--- a/base/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/github-events.json/default/quicktype.hpp
@@ -1541,13 +1541,13 @@ namespace quicktype {
     inline void from_json(const json & j, Comment& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_body(j.at("body").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_html_url(j.at("html_url").get<std::string>());
         if (j.find("id") != j.end() && !j.at("id").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_id(j.at("id").get<int64_t>());
         x.set_issue_url(j.at("issue_url").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         x.set_user(j.at("user").get<User>());
@@ -1619,7 +1619,7 @@ namespace quicktype {
         x.set_closed_at(get_untyped(j, "closed_at"));
         if (j.find("closed_issues") != j.end() && !j.at("closed_issues").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_closed_issues(j.at("closed_issues").get<int64_t>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_creator(j.at("creator").get<User>());
         x.set_description(j.at("description").get<std::string>());
@@ -1635,7 +1635,7 @@ namespace quicktype {
         x.set_open_issues(j.at("open_issues").get<int64_t>());
         x.set_state(j.at("state").get<std::string>());
         x.set_title(j.at("title").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
     }
@@ -1685,7 +1685,7 @@ namespace quicktype {
         if (j.find("comments") != j.end() && !j.at("comments").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_comments(j.at("comments").get<int64_t>());
         x.set_comments_url(j.at("comments_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_events_url(j.at("events_url").get<std::string>());
         x.set_html_url(j.at("html_url").get<std::string>());
@@ -1703,7 +1703,7 @@ namespace quicktype {
         x.set_repository_url(j.at("repository_url").get<std::string>());
         x.set_state(j.at("state").get<std::string>());
         x.set_title(j.at("title").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         x.set_user(j.at("user").get<User>());
@@ -1748,7 +1748,7 @@ namespace quicktype {
         x.set_compare_url(j.at("compare_url").get<std::string>());
         x.set_contents_url(j.at("contents_url").get<std::string>());
         x.set_contributors_url(j.at("contributors_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_default_branch(j.at("default_branch").get<std::string>());
         x.set_deployments_url(j.at("deployments_url").get<std::string>());
@@ -1794,7 +1794,7 @@ namespace quicktype {
         x.set_open_issues_count(j.at("open_issues_count").get<int64_t>());
         x.set_owner(j.at("owner").get<User>());
         x.set_pulls_url(j.at("pulls_url").get<std::string>());
-        if (j.find("pushed_at") != j.end() && !std::regex_match(j.at("pushed_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("pushed_at") != j.end() && !std::regex_match(j.at("pushed_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_pushed_at(j.at("pushed_at").get<std::string>());
         x.set_releases_url(j.at("releases_url").get<std::string>());
         x.set_repo_private(j.at("private").get<bool>());
@@ -1811,7 +1811,7 @@ namespace quicktype {
         x.set_tags_url(j.at("tags_url").get<std::string>());
         x.set_teams_url(j.at("teams_url").get<std::string>());
         x.set_trees_url(j.at("trees_url").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         if (j.find("watchers") != j.end() && !j.at("watchers").is_number_integer()) throw std::runtime_error("Expected integer");
@@ -1955,7 +1955,7 @@ namespace quicktype {
         x.set_body(j.at("body").get<std::string>());
         if (j.find("changed_files") != j.end() && !j.at("changed_files").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_changed_files(j.at("changed_files").get<int64_t>());
-        if (j.find("closed_at") != j.end() && !std::regex_match(j.at("closed_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("closed_at") != j.end() && !std::regex_match(j.at("closed_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_closed_at(j.at("closed_at").get<std::string>());
         if (j.find("comments") != j.end() && !j.at("comments").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_comments(j.at("comments").get<int64_t>());
@@ -1963,7 +1963,7 @@ namespace quicktype {
         if (j.find("commits") != j.end() && !j.at("commits").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_commits(j.at("commits").get<int64_t>());
         x.set_commits_url(j.at("commits_url").get<std::string>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         if (j.find("deletions") != j.end() && !j.at("deletions").is_number_integer()) throw std::runtime_error("Expected integer");
         x.set_deletions(j.at("deletions").get<int64_t>());
@@ -1980,7 +1980,7 @@ namespace quicktype {
         x.set_mergeable(get_untyped(j, "mergeable"));
         x.set_mergeable_state(j.at("mergeable_state").get<std::string>());
         x.set_merged(j.at("merged").get<bool>());
-        if (j.find("merged_at") != j.end() && !std::regex_match(j.at("merged_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("merged_at") != j.end() && !std::regex_match(j.at("merged_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_merged_at(j.at("merged_at").get<std::string>());
         x.set_merged_by(j.at("merged_by").get<User>());
         x.set_milestone(get_untyped(j, "milestone"));
@@ -1996,7 +1996,7 @@ namespace quicktype {
         x.set_state(j.at("state").get<std::string>());
         x.set_statuses_url(j.at("statuses_url").get<std::string>());
         x.set_title(j.at("title").get<std::string>());
-        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("updated_at") != j.end() && !std::regex_match(j.at("updated_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_updated_at(j.at("updated_at").get<std::string>());
         x.set_url(j.at("url").get<std::string>());
         x.set_user(j.at("user").get<User>());
@@ -2125,7 +2125,7 @@ namespace quicktype {
     inline void from_json(const json & j, TopLevelElement& x) {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_actor(j.at("actor").get<Actor>());
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_created_at(j.at("created_at").get<std::string>());
         x.set_id(j.at("id").get<std::string>());
         if (j.find("org") != j.end() && j.at("org").is_null()) throw std::runtime_error("Unexpected null");
diff --git a/base/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp b/head/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
index 0ec5118..b43997d 100644
--- a/base/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
+++ b/head/cplusplus/test/inputs/json/samples/null-safe.json/default/quicktype.hpp
@@ -183,7 +183,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("address") != j.end() && j.at("address").is_null()) throw std::runtime_error("Unexpected null");
         x.set_address(get_stack_optional<Address>(j, "address"));
-        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("created_at") != j.end() && !std::regex_match(j.at("created_at").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         if (j.find("created_at") != j.end() && j.at("created_at").is_null()) throw std::runtime_error("Unexpected null");
         x.set_created_at(get_stack_optional<std::string>(j, "created_at"));
         x.set_name(j.at("name").get<std::string>());
diff --git a/base/graphql-swift/test/inputs/graphql/github1.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github1.graphql/default/quicktype.swift
index d271da8..87d31b9 100644
--- a/base/graphql-swift/test/inputs/graphql/github1.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github1.graphql/default/quicktype.swift
@@ -195,7 +195,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github2.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github2.graphql/default/quicktype.swift
index 0854537..ccd4719 100644
--- a/base/graphql-swift/test/inputs/graphql/github2.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github2.graphql/default/quicktype.swift
@@ -287,7 +287,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github3.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github3.graphql/default/quicktype.swift
index 7d68cc7..fdc4703 100644
--- a/base/graphql-swift/test/inputs/graphql/github3.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github3.graphql/default/quicktype.swift
@@ -333,7 +333,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github4.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github4.graphql/default/quicktype.swift
index c6a0268..61110e5 100644
--- a/base/graphql-swift/test/inputs/graphql/github4.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github4.graphql/default/quicktype.swift
@@ -337,7 +337,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github5.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github5.graphql/default/quicktype.swift
index 6c17530..695763b 100644
--- a/base/graphql-swift/test/inputs/graphql/github5.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github5.graphql/default/quicktype.swift
@@ -195,7 +195,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github6.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github6.graphql/default/quicktype.swift
index 4dffc49..fac743e 100644
--- a/base/graphql-swift/test/inputs/graphql/github6.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github6.graphql/default/quicktype.swift
@@ -195,7 +195,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github7.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github7.graphql/default/quicktype.swift
index a3e882d..e81acf5 100644
--- a/base/graphql-swift/test/inputs/graphql/github7.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github7.graphql/default/quicktype.swift
@@ -391,7 +391,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github8.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github8.graphql/default/quicktype.swift
index 14f75f5..bc5e13d 100644
--- a/base/graphql-swift/test/inputs/graphql/github8.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github8.graphql/default/quicktype.swift
@@ -256,7 +256,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/graphql-swift/test/inputs/graphql/github9.graphql/default/quicktype.swift b/head/graphql-swift/test/inputs/graphql/github9.graphql/default/quicktype.swift
index 6cdcba5..87a0a54 100644
--- a/base/graphql-swift/test/inputs/graphql/github9.graphql/default/quicktype.swift
+++ b/head/graphql-swift/test/inputs/graphql/github9.graphql/default/quicktype.swift
@@ -300,7 +300,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/objective-c/test/inputs/json/misc/0a358.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/0a358.json/default/QTTopLevel.m
index 8af9d9b..952b27b 100644
--- a/base/objective-c/test/inputs/json/misc/0a358.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/0a358.json/default/QTTopLevel.m
@@ -228,12 +228,14 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"code"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"id"] doubleValue] != [dict[@"id"] longLongValue]) return nil;
         if (![dict[@"name"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/0a91a.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/0a91a.json/default/QTTopLevel.m
index 5b754de..6c1a7e0 100644
--- a/base/objective-c/test/inputs/json/misc/0a91a.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/0a91a.json/default/QTTopLevel.m
@@ -175,7 +175,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"actor"] isKindOfClass:NSDictionary.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"public"] isKindOfClass:NSNumber.class]) return nil;
@@ -539,7 +540,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"body"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"changed_files"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"changed_files"] doubleValue] != [dict[@"changed_files"] longLongValue]) return nil;
-        if (dict[@"closed_at"] && [dict[@"closed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"closed_at"] && [dict[@"closed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"closed_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"closed_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"closed_at"] substringToIndex:10]]) return nil;
         if (![dict[@"closed_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"comments"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"comments"] doubleValue] != [dict[@"comments"] longLongValue]) return nil;
@@ -547,7 +549,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"commits"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"commits"] doubleValue] != [dict[@"commits"] longLongValue]) return nil;
         if (![dict[@"commits_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"deletions"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"deletions"] doubleValue] != [dict[@"deletions"] longLongValue]) return nil;
@@ -564,7 +567,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"merge_commit_sha"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"mergeable"]) return nil;
         if (![dict[@"mergeable_state"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"merged_at"] && [dict[@"merged_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"merged_at"] && [dict[@"merged_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"merged_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"merged_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"merged_at"] substringToIndex:10]]) return nil;
         if (![dict[@"merged_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"merged_by"] isKindOfClass:NSDictionary.class]) return nil;
         if (!dict[@"milestone"]) return nil;
@@ -580,7 +584,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"state"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"statuses_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"title"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"user"] isKindOfClass:NSDictionary.class]) return nil;
@@ -794,7 +799,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"compare_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"contents_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"contributors_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"default_branch"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"deployments_url"] isKindOfClass:NSString.class]) return nil;
@@ -840,7 +846,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if ([dict[@"open_issues_count"] doubleValue] != [dict[@"open_issues_count"] longLongValue]) return nil;
         if (![dict[@"owner"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"pulls_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"pushed_at"] && [dict[@"pushed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"pushed_at"] && [dict[@"pushed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"pushed_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"pushed_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"pushed_at"] substringToIndex:10]]) return nil;
         if (![dict[@"pushed_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"releases_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"size"] isKindOfClass:NSNumber.class]) return nil;
@@ -857,7 +864,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"teams_url"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"description"]) return nil;
         if (![dict[@"trees_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"watchers"] isKindOfClass:NSNumber.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/16bc5.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/16bc5.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/16bc5.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/16bc5.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/262f0.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/262f0.json/default/QTTopLevel.m
index 5045c66..17f7fc5 100644
--- a/base/objective-c/test/inputs/json/misc/262f0.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/262f0.json/default/QTTopLevel.m
@@ -246,7 +246,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/337ed.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/337ed.json/default/QTTopLevel.m
index f604dbc..5a67bf0 100644
--- a/base/objective-c/test/inputs/json/misc/337ed.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/337ed.json/default/QTTopLevel.m
@@ -344,12 +344,14 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"cost_absolute"]) return nil;
         if (!dict[@"cost_max"]) return nil;
         if (!dict[@"cost_min"]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"customIncomes"] isKindOfClass:NSArray.class]) return nil;
         if (!dict[@"direct_rep_costs_max"]) return nil;
         if (!dict[@"direct_rep_costs_min"]) return nil;
-        if (dict[@"end_date"] && [dict[@"end_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"end_date"] && [dict[@"end_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"end_date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"end_date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"end_date"] substringToIndex:10]]) return nil;
         if (![dict[@"end_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"eur_sources_grants"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"eur_sources_grants"] doubleValue] != [dict[@"eur_sources_grants"] longLongValue]) return nil;
@@ -367,7 +369,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"public_financing_national"]) return nil;
         if (!dict[@"public_financing_total"]) return nil;
         if (![dict[@"representative"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"start_date"] && [dict[@"start_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"start_date"] && [dict[@"start_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"start_date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"start_date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"start_date"] substringToIndex:10]]) return nil;
         if (![dict[@"start_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"status"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"new_organisation"]) return nil;
@@ -376,7 +379,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"turnover_max"]) return nil;
         if (!dict[@"turnover_min"]) return nil;
         if (![dict[@"type"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
@@ -447,13 +451,15 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"amount"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"amount"] doubleValue] != [dict[@"amount"] longLongValue]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"name"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"status"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"type"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/3f1ce.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/3f1ce.json/default/QTTopLevel.m
index e01ac72..53d8507 100644
--- a/base/objective-c/test/inputs/json/misc/3f1ce.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/3f1ce.json/default/QTTopLevel.m
@@ -242,7 +242,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/4c547.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/4c547.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/4c547.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/4c547.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/54d32.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/54d32.json/default/QTTopLevel.m
index 5f08b28..42e0a08 100644
--- a/base/objective-c/test/inputs/json/misc/54d32.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/54d32.json/default/QTTopLevel.m
@@ -254,13 +254,15 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"person_id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"representative_id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"status"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
         _status = [QTStatus withValue:(id)_status];
diff --git a/base/objective-c/test/inputs/json/misc/5eae5.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/5eae5.json/default/QTTopLevel.m
index 8181aae..02b5657 100644
--- a/base/objective-c/test/inputs/json/misc/5eae5.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/5eae5.json/default/QTTopLevel.m
@@ -82,7 +82,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"Date"] && [dict[@"Date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"Date"] && [dict[@"Date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"Date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"Date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"Date"] substringToIndex:10]]) return nil;
         if (![dict[@"Date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"ID"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"ID"] doubleValue] != [dict[@"ID"] longLongValue]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/6dec6.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/6dec6.json/default/QTTopLevel.m
index 7d53653..0e9fd56 100644
--- a/base/objective-c/test/inputs/json/misc/6dec6.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/6dec6.json/default/QTTopLevel.m
@@ -246,7 +246,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/734ad.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/734ad.json/default/QTTopLevel.m
index a82bbd0..77d47d1 100644
--- a/base/objective-c/test/inputs/json/misc/734ad.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/734ad.json/default/QTTopLevel.m
@@ -318,7 +318,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"code_of_conduct"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"contact_country"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"contact_country"] doubleValue] != [dict[@"contact_country"] longLongValue]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"entity"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"goals"] isKindOfClass:NSString.class]) return nil;
@@ -334,7 +335,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"identification_code"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"info_members"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"last_update_date"] && [dict[@"last_update_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"last_update_date"] && [dict[@"last_update_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"last_update_date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"last_update_date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"last_update_date"] substringToIndex:10]]) return nil;
         if (![dict[@"last_update_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"legal"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"legal_status"] isKindOfClass:NSString.class]) return nil;
@@ -353,14 +355,16 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"networking"]) return nil;
         if (!dict[@"number_of_natural_persons"]) return nil;
         if (!dict[@"other_code_of_conduct"]) return nil;
-        if (dict[@"registration_date"] && [dict[@"registration_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"registration_date"] && [dict[@"registration_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"registration_date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"registration_date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"registration_date"] substringToIndex:10]]) return nil;
         if (![dict[@"registration_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"status"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"structure_members"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"sub_category"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"sub_category"] doubleValue] != [dict[@"sub_category"] longLongValue]) return nil;
         if (![dict[@"sub_category_title"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"web_site_url"]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/77392.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/77392.json/default/QTTopLevel.m
index 62d5db5..4ed683d 100644
--- a/base/objective-c/test/inputs/json/misc/77392.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/77392.json/default/QTTopLevel.m
@@ -159,7 +159,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"designation"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"discovery_date"] && [dict[@"discovery_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"discovery_date"] && [dict[@"discovery_date"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"discovery_date"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"discovery_date"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"discovery_date"] substringToIndex:10]]) return nil;
         if (![dict[@"discovery_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"i_deg"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"moid_au"] isKindOfClass:NSString.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/7f568.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/7f568.json/default/QTTopLevel.m
index 6fb560b..e108e2e 100644
--- a/base/objective-c/test/inputs/json/misc/7f568.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/7f568.json/default/QTTopLevel.m
@@ -153,7 +153,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if ([dict[@"comments"] doubleValue] != [dict[@"comments"] longLongValue]) return nil;
         if (![dict[@"comments_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"commits_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"files"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"forks_url"] isKindOfClass:NSString.class]) return nil;
@@ -164,7 +165,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"public"] isKindOfClass:NSNumber.class]) return nil;
         if (![dict[@"truncated"] isKindOfClass:NSNumber.class]) return nil;
         if (!dict[@"description"]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"user"]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/80aff.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/80aff.json/default/QTTopLevel.m
index 42abd39..fbe7909 100644
--- a/base/objective-c/test/inputs/json/misc/80aff.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/80aff.json/default/QTTopLevel.m
@@ -229,7 +229,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"id"] doubleValue] != [dict[@"id"] longLongValue]) return nil;
@@ -237,7 +238,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if ([dict[@"items"] doubleValue] != [dict[@"items"] longLongValue]) return nil;
         if (![dict[@"name"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"parent"]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/88130.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/88130.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/88130.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/88130.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/9929c.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/9929c.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/9929c.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/9929c.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/9ac3b.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/9ac3b.json/default/QTTopLevel.m
index 92de70d..49080ef 100644
--- a/base/objective-c/test/inputs/json/misc/9ac3b.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/9ac3b.json/default/QTTopLevel.m
@@ -286,7 +286,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"entity"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"first_name"] isKindOfClass:NSString.class]) return nil;
@@ -296,7 +297,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"position"]) return nil;
         if (![dict[@"status"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"title"]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/a0496.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/a0496.json/default/QTTopLevel.m
index e6753e0..744777e 100644
--- a/base/objective-c/test/inputs/json/misc/a0496.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/a0496.json/default/QTTopLevel.m
@@ -125,7 +125,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"description"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"to_date"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"type"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"urlize_name"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/a1eca.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/a1eca.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/a1eca.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/a1eca.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/cf0d8.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/cf0d8.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/cf0d8.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/cf0d8.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/d23d5.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/d23d5.json/default/QTTopLevel.m
index 2d7de1b..b29d35a 100644
--- a/base/objective-c/test/inputs/json/misc/d23d5.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/d23d5.json/default/QTTopLevel.m
@@ -228,11 +228,13 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (!dict[@"acronym"]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"name"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"uri"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/misc/dbfb3.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/dbfb3.json/default/QTTopLevel.m
index aed5ed8..a4a9f50 100644
--- a/base/objective-c/test/inputs/json/misc/dbfb3.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/dbfb3.json/default/QTTopLevel.m
@@ -244,7 +244,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/df957.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/df957.json/default/QTTopLevel.m
index e85afe8..ea30c5a 100644
--- a/base/objective-c/test/inputs/json/misc/df957.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/df957.json/default/QTTopLevel.m
@@ -217,7 +217,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/misc/e2915.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/misc/e2915.json/default/QTTopLevel.m
index 6d93fa3..0d96e42 100644
--- a/base/objective-c/test/inputs/json/misc/e2915.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/misc/e2915.json/default/QTTopLevel.m
@@ -242,7 +242,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"count"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"count"] doubleValue] != [dict[@"count"] longLongValue]) return nil;
-        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && [dict[@"created"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created"] substringToIndex:10]]) return nil;
         if (![dict[@"created"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"lang"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"results"] isKindOfClass:NSDictionary.class]) return nil;
diff --git a/base/objective-c/test/inputs/json/priority/bug2663.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/priority/bug2663.json/default/QTTopLevel.m
index 65311fa..d0143a4 100644
--- a/base/objective-c/test/inputs/json/priority/bug2663.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/priority/bug2663.json/default/QTTopLevel.m
@@ -79,7 +79,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"birthday"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"lastSeen"] && [dict[@"lastSeen"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"lastSeen"] && [dict[@"lastSeen"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"lastSeen"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"lastSeen"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"lastSeen"] substringToIndex:10]]) return nil;
         if (![dict[@"lastSeen"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"name"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
index 0002101..bf5af91 100644
--- a/base/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/priority/keywords.json/default/QTTopLevel.m
@@ -6077,7 +6077,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 - (instancetype)initWithJSONDictionary:(NSDictionary *)dict
 {
     if (self = [super init]) {
-        if (dict[@"DateTime"] && [dict[@"DateTime"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"DateTime"] && [dict[@"DateTime"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"DateTime"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"DateTime"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"DateTime"] substringToIndex:10]]) return nil;
         if (![dict[@"DateTime"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
     }
diff --git a/base/objective-c/test/inputs/json/samples/github-events.json/default/QTTopLevel.m b/head/objective-c/test/inputs/json/samples/github-events.json/default/QTTopLevel.m
index fca41ce..297e587 100644
--- a/base/objective-c/test/inputs/json/samples/github-events.json/default/QTTopLevel.m
+++ b/head/objective-c/test/inputs/json/samples/github-events.json/default/QTTopLevel.m
@@ -194,7 +194,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"actor"] isKindOfClass:NSDictionary.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"public"] isKindOfClass:NSNumber.class]) return nil;
@@ -415,13 +416,15 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"body"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"html_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"id"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"id"] doubleValue] != [dict[@"id"] longLongValue]) return nil;
         if (![dict[@"issue_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"user"] isKindOfClass:NSDictionary.class]) return nil;
@@ -708,7 +711,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"comments"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"comments"] doubleValue] != [dict[@"comments"] longLongValue]) return nil;
         if (![dict[@"comments_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"events_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"html_url"] isKindOfClass:NSString.class]) return nil;
@@ -723,7 +727,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"repository_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"state"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"title"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"user"] isKindOfClass:NSDictionary.class]) return nil;
@@ -873,7 +878,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (!dict[@"closed_at"]) return nil;
         if (![dict[@"closed_issues"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"closed_issues"] doubleValue] != [dict[@"closed_issues"] longLongValue]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"creator"] isKindOfClass:NSDictionary.class]) return nil;
         if (!dict[@"due_on"]) return nil;
@@ -888,7 +894,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"state"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"description"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"title"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
@@ -1052,7 +1059,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"body"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"changed_files"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"changed_files"] doubleValue] != [dict[@"changed_files"] longLongValue]) return nil;
-        if (dict[@"closed_at"] && [dict[@"closed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"closed_at"] && [dict[@"closed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"closed_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"closed_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"closed_at"] substringToIndex:10]]) return nil;
         if (![dict[@"closed_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"comments"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"comments"] doubleValue] != [dict[@"comments"] longLongValue]) return nil;
@@ -1060,7 +1068,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"commits"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"commits"] doubleValue] != [dict[@"commits"] longLongValue]) return nil;
         if (![dict[@"commits_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"deletions"] isKindOfClass:NSNumber.class]) return nil;
         if ([dict[@"deletions"] doubleValue] != [dict[@"deletions"] longLongValue]) return nil;
@@ -1077,7 +1086,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"merge_commit_sha"] isKindOfClass:NSString.class]) return nil;
         if (!dict[@"mergeable"]) return nil;
         if (![dict[@"mergeable_state"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"merged_at"] && [dict[@"merged_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"merged_at"] && [dict[@"merged_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"merged_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"merged_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"merged_at"] substringToIndex:10]]) return nil;
         if (![dict[@"merged_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"merged_by"] isKindOfClass:NSDictionary.class]) return nil;
         if (!dict[@"milestone"]) return nil;
@@ -1093,7 +1103,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"state"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"statuses_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"title"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"user"] isKindOfClass:NSDictionary.class]) return nil;
@@ -1307,7 +1318,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"compare_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"contents_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"contributors_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && [dict[@"created_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"created_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"created_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"created_at"] substringToIndex:10]]) return nil;
         if (![dict[@"created_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"default_branch"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"deployments_url"] isKindOfClass:NSString.class]) return nil;
@@ -1353,7 +1365,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if ([dict[@"open_issues_count"] doubleValue] != [dict[@"open_issues_count"] longLongValue]) return nil;
         if (![dict[@"owner"] isKindOfClass:NSDictionary.class]) return nil;
         if (![dict[@"pulls_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"pushed_at"] && [dict[@"pushed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"pushed_at"] && [dict[@"pushed_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"pushed_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"pushed_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"pushed_at"] substringToIndex:10]]) return nil;
         if (![dict[@"pushed_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"releases_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"size"] isKindOfClass:NSNumber.class]) return nil;
@@ -1370,7 +1383,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
         if (![dict[@"teams_url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"description"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"trees_url"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && [dict[@"updated_at"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"updated_at"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"updated_at"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"updated_at"] substringToIndex:10]]) return nil;
         if (![dict[@"updated_at"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"url"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"watchers"] isKindOfClass:NSNumber.class]) return nil;
diff --git a/base/php/test/inputs/json/misc/0a358.json/default/TopLevel.php b/head/php/test/inputs/json/misc/0a358.json/default/TopLevel.php
index d202a99..fe94c79 100644
--- a/base/php/test/inputs/json/misc/0a358.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/0a358.json/default/TopLevel.php
@@ -583,6 +583,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -731,6 +735,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/0a91a.json/default/TopLevel.php b/head/php/test/inputs/json/misc/0a91a.json/default/TopLevel.php
index d666e62..0698be2 100644
--- a/base/php/test/inputs/json/misc/0a91a.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/0a91a.json/default/TopLevel.php
@@ -89,6 +89,10 @@ class TopLevel {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
@@ -2790,6 +2794,10 @@ class PullRequest {
      */
     public static function fromClosedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PullRequest::');
         }
@@ -3032,6 +3040,10 @@ class PullRequest {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PullRequest::');
         }
@@ -3702,6 +3714,10 @@ class PullRequest {
      */
     public static function fromMergedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PullRequest::');
         }
@@ -4338,6 +4354,10 @@ class PullRequest {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PullRequest::');
         }
@@ -5873,6 +5893,10 @@ class BaseRepo {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
@@ -7817,6 +7841,10 @@ class BaseRepo {
      */
     public static function fromPushedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
@@ -8435,6 +8463,10 @@ class BaseRepo {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
diff --git a/base/php/test/inputs/json/misc/16bc5.json/default/TopLevel.php b/head/php/test/inputs/json/misc/16bc5.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/16bc5.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/16bc5.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/262f0.json/default/TopLevel.php b/head/php/test/inputs/json/misc/262f0.json/default/TopLevel.php
index da2fe1a..d73a50d 100644
--- a/base/php/test/inputs/json/misc/262f0.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/262f0.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/32d5c.json/default/TopLevel.php b/head/php/test/inputs/json/misc/32d5c.json/default/TopLevel.php
index 0641104..97d6f42 100644
--- a/base/php/test/inputs/json/misc/32d5c.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/32d5c.json/default/TopLevel.php
@@ -42,6 +42,10 @@ class TopLevel {
     public static function fromBirthDate(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:TopLevel::');
             }
diff --git a/base/php/test/inputs/json/misc/337ed.json/default/TopLevel.php b/head/php/test/inputs/json/misc/337ed.json/default/TopLevel.php
index 659a3a1..fb40ebf 100644
--- a/base/php/test/inputs/json/misc/337ed.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/337ed.json/default/TopLevel.php
@@ -785,6 +785,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -998,6 +1002,10 @@ class Result {
      */
     public static function fromEndDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -1860,6 +1868,10 @@ class Result {
      */
     public static function fromStartDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -2238,6 +2250,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -2678,6 +2694,10 @@ class CustomIncome {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:CustomIncome::');
         }
@@ -2922,6 +2942,10 @@ class CustomIncome {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:CustomIncome::');
         }
diff --git a/base/php/test/inputs/json/misc/3f1ce.json/default/TopLevel.php b/head/php/test/inputs/json/misc/3f1ce.json/default/TopLevel.php
index b20431c..16acdf8 100644
--- a/base/php/test/inputs/json/misc/3f1ce.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/3f1ce.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/4c547.json/default/TopLevel.php b/head/php/test/inputs/json/misc/4c547.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/4c547.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/4c547.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/54d32.json/default/TopLevel.php b/head/php/test/inputs/json/misc/54d32.json/default/TopLevel.php
index cba4e6d..030a570 100644
--- a/base/php/test/inputs/json/misc/54d32.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/54d32.json/default/TopLevel.php
@@ -536,6 +536,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -779,6 +783,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/5eae5.json/default/TopLevel.php b/head/php/test/inputs/json/misc/5eae5.json/default/TopLevel.php
index 337bb78..023ebfe 100644
--- a/base/php/test/inputs/json/misc/5eae5.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/5eae5.json/default/TopLevel.php
@@ -29,6 +29,10 @@ class TopLevel {
      */
     public static function fromDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/php/test/inputs/json/misc/6dec6.json/default/TopLevel.php b/head/php/test/inputs/json/misc/6dec6.json/default/TopLevel.php
index ca38755..c20639d 100644
--- a/base/php/test/inputs/json/misc/6dec6.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/6dec6.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/734ad.json/default/TopLevel.php b/head/php/test/inputs/json/misc/734ad.json/default/TopLevel.php
index 988a1ff..3a70cfa 100644
--- a/base/php/test/inputs/json/misc/734ad.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/734ad.json/default/TopLevel.php
@@ -1685,6 +1685,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -2437,6 +2441,10 @@ class Result {
      */
     public static function fromLastUpdateDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -3269,6 +3277,10 @@ class Result {
      */
     public static function fromRegistrationDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -3512,6 +3524,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/77392.json/default/TopLevel.php b/head/php/test/inputs/json/misc/77392.json/default/TopLevel.php
index c25b83c..ed7b499 100644
--- a/base/php/test/inputs/json/misc/77392.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/77392.json/default/TopLevel.php
@@ -94,6 +94,10 @@ class TopLevel {
      */
     public static function fromDiscoveryDate(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/php/test/inputs/json/misc/7f568.json/default/TopLevel.php b/head/php/test/inputs/json/misc/7f568.json/default/TopLevel.php
index 82ed5f2..88d9c4a 100644
--- a/base/php/test/inputs/json/misc/7f568.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/7f568.json/default/TopLevel.php
@@ -206,6 +206,10 @@ class TopLevel {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
@@ -708,6 +712,10 @@ class TopLevel {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/php/test/inputs/json/misc/80aff.json/default/TopLevel.php b/head/php/test/inputs/json/misc/80aff.json/default/TopLevel.php
index a541ca5..b5cb22c 100644
--- a/base/php/test/inputs/json/misc/80aff.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/80aff.json/default/TopLevel.php
@@ -539,6 +539,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -791,6 +795,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/88130.json/default/TopLevel.php b/head/php/test/inputs/json/misc/88130.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/88130.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/88130.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/9929c.json/default/TopLevel.php b/head/php/test/inputs/json/misc/9929c.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/9929c.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/9929c.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/9ac3b.json/default/TopLevel.php b/head/php/test/inputs/json/misc/9ac3b.json/default/TopLevel.php
index 6e91f6c..0643ad8 100644
--- a/base/php/test/inputs/json/misc/9ac3b.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/9ac3b.json/default/TopLevel.php
@@ -551,6 +551,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -1003,6 +1007,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/a0496.json/default/TopLevel.php b/head/php/test/inputs/json/misc/a0496.json/default/TopLevel.php
index e0ba9e2..49f829a 100644
--- a/base/php/test/inputs/json/misc/a0496.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/a0496.json/default/TopLevel.php
@@ -841,6 +841,10 @@ class TopLevel {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/php/test/inputs/json/misc/a1eca.json/default/TopLevel.php b/head/php/test/inputs/json/misc/a1eca.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/a1eca.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/a1eca.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/b4865.json/default/TopLevel.php b/head/php/test/inputs/json/misc/b4865.json/default/TopLevel.php
index 612c3e7..d75c647 100644
--- a/base/php/test/inputs/json/misc/b4865.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/b4865.json/default/TopLevel.php
@@ -634,6 +634,10 @@ class TopLevel {
     public static function fromYear(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:TopLevel::');
             }
diff --git a/base/php/test/inputs/json/misc/cf0d8.json/default/TopLevel.php b/head/php/test/inputs/json/misc/cf0d8.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/cf0d8.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/cf0d8.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/d23d5.json/default/TopLevel.php b/head/php/test/inputs/json/misc/d23d5.json/default/TopLevel.php
index ef14736..84cf084 100644
--- a/base/php/test/inputs/json/misc/d23d5.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/d23d5.json/default/TopLevel.php
@@ -593,6 +593,10 @@ class Result {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
@@ -741,6 +745,10 @@ class Result {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Result::');
         }
diff --git a/base/php/test/inputs/json/misc/dbfb3.json/default/TopLevel.php b/head/php/test/inputs/json/misc/dbfb3.json/default/TopLevel.php
index f7523ea..40b0a26 100644
--- a/base/php/test/inputs/json/misc/dbfb3.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/dbfb3.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/df957.json/default/TopLevel.php b/head/php/test/inputs/json/misc/df957.json/default/TopLevel.php
index 51996fe..4733dda 100644
--- a/base/php/test/inputs/json/misc/df957.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/df957.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/misc/e2915.json/default/TopLevel.php b/head/php/test/inputs/json/misc/e2915.json/default/TopLevel.php
index f5b3cbb..041ee05 100644
--- a/base/php/test/inputs/json/misc/e2915.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/misc/e2915.json/default/TopLevel.php
@@ -178,6 +178,10 @@ class Query {
      */
     public static function fromCreated(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Query::');
         }
diff --git a/base/php/test/inputs/json/priority/bug2590.json/default/TopLevel.php b/head/php/test/inputs/json/priority/bug2590.json/default/TopLevel.php
index 7d13867..a55369c 100644
--- a/base/php/test/inputs/json/priority/bug2590.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/priority/bug2590.json/default/TopLevel.php
@@ -140,6 +140,10 @@ class Invoice {
     public static function fromCreatedAt(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:Invoice::');
             }
diff --git a/base/php/test/inputs/json/priority/bug2663.json/default/TopLevel.php b/head/php/test/inputs/json/priority/bug2663.json/default/TopLevel.php
index cccbe55..cdb1682 100644
--- a/base/php/test/inputs/json/priority/bug2663.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/priority/bug2663.json/default/TopLevel.php
@@ -73,6 +73,10 @@ class TopLevel {
      */
     public static function fromLastSeen(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/php/test/inputs/json/priority/keywords.json/default/TopLevel.php b/head/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
index ca833f3..01d949b 100644
--- a/base/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/priority/keywords.json/default/TopLevel.php
@@ -15165,6 +15165,10 @@ class DateTimeClass {
      */
     public static function fromDateTime(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:DateTimeClass::');
         }
diff --git a/base/php/test/inputs/json/samples/github-events.json/default/TopLevel.php b/head/php/test/inputs/json/samples/github-events.json/default/TopLevel.php
index b455ff1..d22d464 100644
--- a/base/php/test/inputs/json/samples/github-events.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/samples/github-events.json/default/TopLevel.php
@@ -89,6 +89,10 @@ class TopLevel {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
@@ -2082,6 +2086,10 @@ class Comment {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Comment::');
         }
@@ -2277,6 +2285,10 @@ class Comment {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Comment::');
         }
@@ -4299,6 +4311,10 @@ class Issue {
     public static function fromClosedAt(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:Issue::');
             }
@@ -4456,6 +4472,10 @@ class Issue {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Issue::');
         }
@@ -5108,6 +5128,10 @@ class Issue {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Issue::');
         }
@@ -5923,6 +5947,10 @@ class Milestone {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Milestone::');
         }
@@ -6073,6 +6101,10 @@ class Milestone {
     public static function fromDueOn(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:Milestone::');
             }
@@ -6465,6 +6497,10 @@ class Milestone {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:Milestone::');
         }
@@ -7407,6 +7443,10 @@ class PayloadPullRequest {
      */
     public static function fromClosedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PayloadPullRequest::');
         }
@@ -7649,6 +7689,10 @@ class PayloadPullRequest {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PayloadPullRequest::');
         }
@@ -8319,6 +8363,10 @@ class PayloadPullRequest {
      */
     public static function fromMergedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PayloadPullRequest::');
         }
@@ -8955,6 +9003,10 @@ class PayloadPullRequest {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:PayloadPullRequest::');
         }
@@ -10490,6 +10542,10 @@ class BaseRepo {
      */
     public static function fromCreatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
@@ -12428,6 +12484,10 @@ class BaseRepo {
      */
     public static function fromPushedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
@@ -13046,6 +13106,10 @@ class BaseRepo {
      */
     public static function fromUpdatedAt(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:BaseRepo::');
         }
diff --git a/base/php/test/inputs/json/samples/null-safe.json/default/TopLevel.php b/head/php/test/inputs/json/samples/null-safe.json/default/TopLevel.php
index ad97f86..bb50cf8 100644
--- a/base/php/test/inputs/json/samples/null-safe.json/default/TopLevel.php
+++ b/head/php/test/inputs/json/samples/null-safe.json/default/TopLevel.php
@@ -201,6 +201,10 @@ class Item {
     public static function fromCreatedAt(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:Item::');
             }
diff --git a/base/schema-cplusplus/test/inputs/schema/date-time.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/date-time.schema/default/quicktype.hpp
index 6aa08f3..d134b79 100644
--- a/base/schema-cplusplus/test/inputs/schema/date-time.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/date-time.schema/default/quicktype.hpp
@@ -234,7 +234,7 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         x.set_complex_union_array(j.at("complex-union-array").get<std::vector<ComplexUnionArrayElement>>());
         x.set_date(j.at("date").get<std::string>());
-        if (j.find("date-time") != j.end() && !std::regex_match(j.at("date-time").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("date-time") != j.end() && !std::regex_match(j.at("date-time").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_date_time(j.at("date-time").get<std::string>());
         if (j.find("local-date-class") != j.end() && j.at("local-date-class").is_null()) throw std::runtime_error("Unexpected null");
         x.set_local_date_class(get_stack_optional<LocalDate>(j, "local-date-class"));
diff --git a/base/schema-cplusplus/test/inputs/schema/optional-date-time.schema/default/quicktype.hpp b/head/schema-cplusplus/test/inputs/schema/optional-date-time.schema/default/quicktype.hpp
index a283e2a..48f953a 100644
--- a/base/schema-cplusplus/test/inputs/schema/optional-date-time.schema/default/quicktype.hpp
+++ b/head/schema-cplusplus/test/inputs/schema/optional-date-time.schema/default/quicktype.hpp
@@ -136,13 +136,13 @@ namespace quicktype {
         if (!j.is_object()) throw std::runtime_error("Expected object");
         if (j.find("optional-date") != j.end() && j.at("optional-date").is_null()) throw std::runtime_error("Unexpected null");
         x.set_optional_date(get_stack_optional<std::string>(j, "optional-date"));
-        if (j.find("optional-date-time") != j.end() && !std::regex_match(j.at("optional-date-time").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("optional-date-time") != j.end() && !std::regex_match(j.at("optional-date-time").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         if (j.find("optional-date-time") != j.end() && j.at("optional-date-time").is_null()) throw std::runtime_error("Unexpected null");
         x.set_optional_date_time(get_stack_optional<std::string>(j, "optional-date-time"));
         if (j.find("optional-time") != j.end() && j.at("optional-time").is_null()) throw std::runtime_error("Unexpected null");
         x.set_optional_time(get_stack_optional<std::string>(j, "optional-time"));
         x.set_required_date(j.at("required-date").get<std::string>());
-        if (j.find("required-date-time") != j.end() && !std::regex_match(j.at("required-date-time").get<std::string>(), std::regex("^[0-9]{4}-[0-9]{2}-[0-9]{2}T.*$"))) throw std::runtime_error("Expected date-time");
+        if (j.find("required-date-time") != j.end() && !std::regex_match(j.at("required-date-time").get<std::string>(), std::regex("^(?:(?:[0-9]{4}-(?:0[13578]|1[02])-(?:0[1-9]|[12][0-9]|3[01]))|(?:[0-9]{4}-(?:0[469]|11)-(?:0[1-9]|[12][0-9]|30))|(?:[0-9]{4}-02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:[02468][048]|[13579][26])00)-02-29))[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:[.][0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$"))) throw std::runtime_error("Expected date-time");
         x.set_required_date_time(j.at("required-date-time").get<std::string>());
         x.set_required_time(j.at("required-time").get<std::string>());
     }
diff --git a/base/schema-objective-c/test/inputs/schema/date-time.schema/default/QTTopLevel.m b/head/schema-objective-c/test/inputs/schema/date-time.schema/default/QTTopLevel.m
index 5805028..0c3f75c 100644
--- a/base/schema-objective-c/test/inputs/schema/date-time.schema/default/QTTopLevel.m
+++ b/head/schema-objective-c/test/inputs/schema/date-time.schema/default/QTTopLevel.m
@@ -139,7 +139,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
     if (self = [super init]) {
         if (![dict[@"complex-union-array"] isKindOfClass:NSArray.class]) return nil;
         if (![dict[@"date"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"date-time"] && [dict[@"date-time"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"date-time"] && [dict[@"date-time"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"date-time"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"date-time"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"date-time"] substringToIndex:10]]) return nil;
         if (![dict[@"date-time"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"time"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"union-array"] isKindOfClass:NSArray.class]) return nil;
diff --git a/base/schema-objective-c/test/inputs/schema/optional-date-time.schema/default/QTTopLevel.m b/head/schema-objective-c/test/inputs/schema/optional-date-time.schema/default/QTTopLevel.m
index c324d64..f919e59 100644
--- a/base/schema-objective-c/test/inputs/schema/optional-date-time.schema/default/QTTopLevel.m
+++ b/head/schema-objective-c/test/inputs/schema/optional-date-time.schema/default/QTTopLevel.m
@@ -82,7 +82,8 @@ NSString *_Nullable QTTopLevelToJSON(QTTopLevel *topLevel, NSStringEncoding enco
 {
     if (self = [super init]) {
         if (![dict[@"required-date"] isKindOfClass:NSString.class]) return nil;
-        if (dict[@"required-date-time"] && [dict[@"required-date-time"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}T" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"required-date-time"] && [dict[@"required-date-time"] rangeOfString:@"^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]+)?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])?$" options:NSRegularExpressionSearch].location == NSNotFound) return nil;
+        if (dict[@"required-date-time"] && ![[[[NSISO8601DateFormatter new] stringFromDate:[[NSISO8601DateFormatter new] dateFromString:[[dict[@"required-date-time"] substringToIndex:10] stringByAppendingString:@"T00:00:00Z"]]] substringToIndex:10] isEqualToString:[dict[@"required-date-time"] substringToIndex:10]]) return nil;
         if (![dict[@"required-date-time"] isKindOfClass:NSString.class]) return nil;
         if (![dict[@"required-time"] isKindOfClass:NSString.class]) return nil;
         [self setValuesForKeysWithDictionary:dict];
diff --git a/base/schema-php/test/inputs/schema/date-time-or-string.schema/default/TopLevel.php b/head/schema-php/test/inputs/schema/date-time-or-string.schema/default/TopLevel.php
index 304c03c..2aa15da 100644
--- a/base/schema-php/test/inputs/schema/date-time-or-string.schema/default/TopLevel.php
+++ b/head/schema-php/test/inputs/schema/date-time-or-string.schema/default/TopLevel.php
@@ -26,6 +26,10 @@ class TopLevel {
             return Bar::from($value); /*enum*/
         } elseif (is_string($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:TopLevel::');
             }
diff --git a/base/schema-php/test/inputs/schema/date-time.schema/default/TopLevel.php b/head/schema-php/test/inputs/schema/date-time.schema/default/TopLevel.php
index 5b1252b..ed9c870 100644
--- a/base/schema-php/test/inputs/schema/date-time.schema/default/TopLevel.php
+++ b/head/schema-php/test/inputs/schema/date-time.schema/default/TopLevel.php
@@ -45,6 +45,10 @@ class TopLevel {
                 return ComplexUnionArray::from($value); /*enum*/
             } elseif (is_string($value)) {
                 $tmp = new DateTime($value);
+                $errors = DateTime::getLastErrors();
+                if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                    throw new Exception('Invalid date-time');
+                }
                 if (!is_a($tmp, 'DateTime')) {
                     throw new Exception('Attribute Error:TopLevel::');
                 }
@@ -179,6 +183,10 @@ class TopLevel {
      */
     public static function fromDateTime(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/schema-php/test/inputs/schema/optional-date-time.schema/default/TopLevel.php b/head/schema-php/test/inputs/schema/optional-date-time.schema/default/TopLevel.php
index ccab7ff..14aa727 100644
--- a/base/schema-php/test/inputs/schema/optional-date-time.schema/default/TopLevel.php
+++ b/head/schema-php/test/inputs/schema/optional-date-time.schema/default/TopLevel.php
@@ -93,6 +93,10 @@ class TopLevel {
     public static function fromOptionalDateTime(?string $value): ?DateTime {
         if (!is_null($value)) {
             $tmp = new DateTime($value);
+            $errors = DateTime::getLastErrors();
+            if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+                throw new Exception('Invalid date-time');
+            }
             if (!is_a($tmp, 'DateTime')) {
                 throw new Exception('Attribute Error:TopLevel::');
             }
@@ -260,6 +264,10 @@ class TopLevel {
      */
     public static function fromRequiredDateTime(string $value): DateTime {
         $tmp = new DateTime($value);
+        $errors = DateTime::getLastErrors();
+        if ($errors && ($errors['warning_count'] || $errors['error_count'])) {
+            throw new Exception('Invalid date-time');
+        }
         if (!is_a($tmp, 'DateTime')) {
             throw new Exception('Attribute Error:TopLevel::');
         }
diff --git a/base/schema-swift/test/inputs/schema/accessors.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/accessors.schema/default/quicktype.swift
index 51092f2..1af470b 100644
--- a/base/schema-swift/test/inputs/schema/accessors.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/accessors.schema/default/quicktype.swift
@@ -101,7 +101,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/all-of-additional-properties-false.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/all-of-additional-properties-false.schema/default/quicktype.swift
index fe92c85..e9e19bf 100644
--- a/base/schema-swift/test/inputs/schema/all-of-additional-properties-false.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/all-of-additional-properties-false.schema/default/quicktype.swift
@@ -78,7 +78,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/any.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/any.schema/default/quicktype.swift
index 85dbb52..5c1ba98 100644
--- a/base/schema-swift/test/inputs/schema/any.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/any.schema/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/bool-string.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/bool-string.schema/default/quicktype.swift
index d16b76a..62fcc50 100644
--- a/base/schema-swift/test/inputs/schema/bool-string.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/bool-string.schema/default/quicktype.swift
@@ -107,7 +107,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/boolean-subschema.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/boolean-subschema.schema/default/quicktype.swift
index d0f8c95..92bbff3 100644
--- a/base/schema-swift/test/inputs/schema/boolean-subschema.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/boolean-subschema.schema/default/quicktype.swift
@@ -67,7 +67,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/camelCase.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/camelCase.schema/default/quicktype.swift
index 7bdfad8..335b396 100644
--- a/base/schema-swift/test/inputs/schema/camelCase.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/camelCase.schema/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/class-map-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/class-map-union.schema/default/quicktype.swift
index e141cd8..1980f22 100644
--- a/base/schema-swift/test/inputs/schema/class-map-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/class-map-union.schema/default/quicktype.swift
@@ -141,7 +141,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/class-with-additional.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/class-with-additional.schema/default/quicktype.swift
index ad59573..4ae81e1 100644
--- a/base/schema-swift/test/inputs/schema/class-with-additional.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/class-with-additional.schema/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/quicktype.swift
index a8632ef..024ec75 100644
--- a/base/schema-swift/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/quicktype.swift
@@ -67,7 +67,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/comment-injection-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/comment-injection-enum.schema/default/quicktype.swift
index f661222..9a1c09c 100644
--- a/base/schema-swift/test/inputs/schema/comment-injection-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/comment-injection-enum.schema/default/quicktype.swift
@@ -73,7 +73,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/comment-injection-nested-comment.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/comment-injection-nested-comment.schema/default/quicktype.swift
index 2965ec8..9783183 100644
--- a/base/schema-swift/test/inputs/schema/comment-injection-nested-comment.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/comment-injection-nested-comment.schema/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/comment-injection.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/comment-injection.schema/default/quicktype.swift
index f9545e4..26b3604 100644
--- a/base/schema-swift/test/inputs/schema/comment-injection.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/comment-injection.schema/default/quicktype.swift
@@ -94,7 +94,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/const-non-string.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/const-non-string.schema/default/quicktype.swift
index 4295f04..b7f8aa6 100644
--- a/base/schema-swift/test/inputs/schema/const-non-string.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/const-non-string.schema/default/quicktype.swift
@@ -75,7 +75,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/constructor.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/constructor.schema/default/quicktype.swift
index 5339dbd..3e5564e 100644
--- a/base/schema-swift/test/inputs/schema/constructor.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/constructor.schema/default/quicktype.swift
@@ -126,7 +126,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/cut-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/cut-enum.schema/default/quicktype.swift
index 2e56c88..1e5299a 100644
--- a/base/schema-swift/test/inputs/schema/cut-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/cut-enum.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
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 4c0d109..b215321 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
@@ -91,7 +91,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 979e314..ca837b9 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
@@ -252,7 +252,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/default-value.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/default-value.schema/default/quicktype.swift
index 026913c..5f2edac 100644
--- a/base/schema-swift/test/inputs/schema/default-value.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/default-value.schema/default/quicktype.swift
@@ -56,7 +56,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/description-with-double-quotes.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/description-with-double-quotes.schema/default/quicktype.swift
index 8e625a1..9b511bf 100644
--- a/base/schema-swift/test/inputs/schema/description-with-double-quotes.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/description-with-double-quotes.schema/default/quicktype.swift
@@ -56,7 +56,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/description.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/description.schema/default/quicktype.swift
index 97b63af..f1e2457 100644
--- a/base/schema-swift/test/inputs/schema/description.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/description.schema/default/quicktype.swift
@@ -184,7 +184,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/direct-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/direct-union.schema/default/quicktype.swift
index 9fab926..a85343e 100644
--- a/base/schema-swift/test/inputs/schema/direct-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/direct-union.schema/default/quicktype.swift
@@ -542,7 +542,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/empty-object.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/empty-object.schema/default/quicktype.swift
index 4816827..bb94586 100644
--- a/base/schema-swift/test/inputs/schema/empty-object.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/empty-object.schema/default/quicktype.swift
@@ -37,7 +37,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/enum-large.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/enum-large.schema/default/quicktype.swift
index 47b1565..7813fbe 100644
--- a/base/schema-swift/test/inputs/schema/enum-large.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/enum-large.schema/default/quicktype.swift
@@ -88,7 +88,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/enum-with-null.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/enum-with-null.schema/default/quicktype.swift
index 37fb713..914a348 100644
--- a/base/schema-swift/test/inputs/schema/enum-with-null.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/enum-with-null.schema/default/quicktype.swift
@@ -60,7 +60,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/enum-with-values.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/enum-with-values.schema/default/quicktype.swift
index b67794e..1f90b38 100644
--- a/base/schema-swift/test/inputs/schema/enum-with-values.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/enum-with-values.schema/default/quicktype.swift
@@ -65,7 +65,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/enum.schema/default/quicktype.swift
index 4498332..3f6b58e 100644
--- a/base/schema-swift/test/inputs/schema/enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/enum.schema/default/quicktype.swift
@@ -117,7 +117,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/fractional-bounds.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/fractional-bounds.schema/default/quicktype.swift
index fdf4d37..304f919 100644
--- a/base/schema-swift/test/inputs/schema/fractional-bounds.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/fractional-bounds.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/go-schema-pattern-properties.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/go-schema-pattern-properties.schema/default/quicktype.swift
index 9bbc8ca..fb18ab7 100644
--- a/base/schema-swift/test/inputs/schema/go-schema-pattern-properties.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/go-schema-pattern-properties.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/haskell-enum-forbidden.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/haskell-enum-forbidden.schema/default/quicktype.swift
index 41d49d2..ef0c698 100644
--- a/base/schema-swift/test/inputs/schema/haskell-enum-forbidden.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/haskell-enum-forbidden.schema/default/quicktype.swift
@@ -60,7 +60,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/id-no-address.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/id-no-address.schema/default/quicktype.swift
index 42f2ed3..f1631dd 100644
--- a/base/schema-swift/test/inputs/schema/id-no-address.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/id-no-address.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/id-root.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/id-root.schema/default/quicktype.swift
index 2173748..d2bc376 100644
--- a/base/schema-swift/test/inputs/schema/id-root.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/id-root.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/ie-suffix-singularization.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/ie-suffix-singularization.schema/default/quicktype.swift
index af264c4..28af7f5 100644
--- a/base/schema-swift/test/inputs/schema/ie-suffix-singularization.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/ie-suffix-singularization.schema/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/implicit-all-of.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/implicit-all-of.schema/default/quicktype.swift
index f5906cf..17713a2 100644
--- a/base/schema-swift/test/inputs/schema/implicit-all-of.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/implicit-all-of.schema/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.swift
index 5965eed..14f48f2 100644
--- a/base/schema-swift/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/implicit-class-array-union.schema/default/quicktype.swift
@@ -162,7 +162,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/implicit-one-of.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/implicit-one-of.schema/default/quicktype.swift
index 2c829d0..ec1954d 100644
--- a/base/schema-swift/test/inputs/schema/implicit-one-of.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/implicit-one-of.schema/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/integer-before-number.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/integer-before-number.schema/default/quicktype.swift
index 227b491..73f0b58 100644
--- a/base/schema-swift/test/inputs/schema/integer-before-number.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/integer-before-number.schema/default/quicktype.swift
@@ -40,7 +40,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/integer-float-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/integer-float-union.schema/default/quicktype.swift
index 9fe398b..27bff9b 100644
--- a/base/schema-swift/test/inputs/schema/integer-float-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/integer-float-union.schema/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/integer-string.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/integer-string.schema/default/quicktype.swift
index a7913e2..38b5e85 100644
--- a/base/schema-swift/test/inputs/schema/integer-string.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/integer-string.schema/default/quicktype.swift
@@ -107,7 +107,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/integer-type.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/integer-type.schema/default/quicktype.swift
index c749193..6d84ff0 100644
--- a/base/schema-swift/test/inputs/schema/integer-type.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/integer-type.schema/default/quicktype.swift
@@ -87,7 +87,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/intersection-nested.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/intersection-nested.schema/default/quicktype.swift
index f7a7149..968901e 100644
--- a/base/schema-swift/test/inputs/schema/intersection-nested.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/intersection-nested.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/intersection.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/intersection.schema/default/quicktype.swift
index 8ce42c9..35932e6 100644
--- a/base/schema-swift/test/inputs/schema/intersection.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/intersection.schema/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/issue2680-top-level-array.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/issue2680-top-level-array.schema/default/quicktype.swift
index df272ee..d9aacba 100644
--- a/base/schema-swift/test/inputs/schema/issue2680-top-level-array.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/issue2680-top-level-array.schema/default/quicktype.swift
@@ -37,7 +37,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
index a11b85f..0e12cc8 100644
--- a/base/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/keyword-enum.schema/default/quicktype.swift
@@ -416,7 +416,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
index 7d85bad..1fa144b 100644
--- a/base/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/keyword-unions.schema/default/quicktype.swift
@@ -26830,7 +26830,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/light.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/light.schema/default/quicktype.swift
index 7b2fb3b..b2ddd3c 100644
--- a/base/schema-swift/test/inputs/schema/light.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/light.schema/default/quicktype.swift
@@ -107,7 +107,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/list.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/list.schema/default/quicktype.swift
index cacb513..0160730 100644
--- a/base/schema-swift/test/inputs/schema/list.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/list.schema/default/quicktype.swift
@@ -61,7 +61,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/min-max-items.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/min-max-items.schema/default/quicktype.swift
index 0bc5f29..3237d11 100644
--- a/base/schema-swift/test/inputs/schema/min-max-items.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/min-max-items.schema/default/quicktype.swift
@@ -99,7 +99,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/minmax-integer.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/minmax-integer.schema/default/quicktype.swift
index 0eb0c8e..392281b 100644
--- a/base/schema-swift/test/inputs/schema/minmax-integer.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/minmax-integer.schema/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/minmax.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/minmax.schema/default/quicktype.swift
index 0003e3e..eefd7ba 100644
--- a/base/schema-swift/test/inputs/schema/minmax.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/minmax.schema/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/minmaxlength.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/minmaxlength.schema/default/quicktype.swift
index 01bbea8..22778cb 100644
--- a/base/schema-swift/test/inputs/schema/minmaxlength.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/minmaxlength.schema/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/multi-type-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/multi-type-enum.schema/default/quicktype.swift
index 4009966..53332d1 100644
--- a/base/schema-swift/test/inputs/schema/multi-type-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/multi-type-enum.schema/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/mutually-recursive.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/mutually-recursive.schema/default/quicktype.swift
index 0008e65..95331ea 100644
--- a/base/schema-swift/test/inputs/schema/mutually-recursive.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/mutually-recursive.schema/default/quicktype.swift
@@ -132,7 +132,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/nested-intersection-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/nested-intersection-union.schema/default/quicktype.swift
index e0b12e3..9d257c1 100644
--- a/base/schema-swift/test/inputs/schema/nested-intersection-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/nested-intersection-union.schema/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/non-standard-ref.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/non-standard-ref.schema/default/quicktype.swift
index cfd9a01..72a84e1 100644
--- a/base/schema-swift/test/inputs/schema/non-standard-ref.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/non-standard-ref.schema/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/nullable-optional-one-of.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/nullable-optional-one-of.schema/default/quicktype.swift
index c88836e..40719ce 100644
--- a/base/schema-swift/test/inputs/schema/nullable-optional-one-of.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/nullable-optional-one-of.schema/default/quicktype.swift
@@ -64,7 +64,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/object-type-required.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/object-type-required.schema/default/quicktype.swift
index 1805b40..ec176fa 100644
--- a/base/schema-swift/test/inputs/schema/object-type-required.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/object-type-required.schema/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/optional-any.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/optional-any.schema/default/quicktype.swift
index e745635..63cd02e 100644
--- a/base/schema-swift/test/inputs/schema/optional-any.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/optional-any.schema/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/optional-const-ref.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/optional-const-ref.schema/default/quicktype.swift
index 04f03dc..26d6241 100644
--- a/base/schema-swift/test/inputs/schema/optional-const-ref.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/optional-const-ref.schema/default/quicktype.swift
@@ -127,7 +127,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/optional-constraints.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/optional-constraints.schema/default/quicktype.swift
index d4dafd0..2c25ead 100644
--- a/base/schema-swift/test/inputs/schema/optional-constraints.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/optional-constraints.schema/default/quicktype.swift
@@ -71,7 +71,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 53ce930..f82c168 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
@@ -75,7 +75,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/optional-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/optional-enum.schema/default/quicktype.swift
index 9fa895e..fee0394 100644
--- a/base/schema-swift/test/inputs/schema/optional-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/optional-enum.schema/default/quicktype.swift
@@ -64,7 +64,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/pattern.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/pattern.schema/default/quicktype.swift
index 40cf3f3..673a29c 100644
--- a/base/schema-swift/test/inputs/schema/pattern.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/pattern.schema/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/postman-collection.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/postman-collection.schema/default/quicktype.swift
index 34f2380..190ed05 100644
--- a/base/schema-swift/test/inputs/schema/postman-collection.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/postman-collection.schema/default/quicktype.swift
@@ -108,7 +108,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/prefix-items.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/prefix-items.schema/default/quicktype.swift
index 7847a2a..72879ac 100644
--- a/base/schema-swift/test/inputs/schema/prefix-items.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/prefix-items.schema/default/quicktype.swift
@@ -87,7 +87,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/recursive-union-flattening.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/recursive-union-flattening.schema/default/quicktype.swift
index c582194..7b23466 100644
--- a/base/schema-swift/test/inputs/schema/recursive-union-flattening.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/recursive-union-flattening.schema/default/quicktype.swift
@@ -351,7 +351,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/ref-id-files.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/ref-id-files.schema/default/quicktype.swift
index 2e56c88..1e5299a 100644
--- a/base/schema-swift/test/inputs/schema/ref-id-files.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/ref-id-files.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/ref-remote.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/ref-remote.schema/default/quicktype.swift
index cacb513..0160730 100644
--- a/base/schema-swift/test/inputs/schema/ref-remote.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/ref-remote.schema/default/quicktype.swift
@@ -61,7 +61,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/renaming-bug.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/renaming-bug.schema/default/quicktype.swift
index 70c09b5..1c25dde 100644
--- a/base/schema-swift/test/inputs/schema/renaming-bug.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/renaming-bug.schema/default/quicktype.swift
@@ -720,7 +720,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/required-draft3.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/required-draft3.schema/default/quicktype.swift
index b7efd00..b18bcce 100644
--- a/base/schema-swift/test/inputs/schema/required-draft3.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/required-draft3.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/required-non-properties.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/required-non-properties.schema/default/quicktype.swift
index cf22c71..1e87e51 100644
--- a/base/schema-swift/test/inputs/schema/required-non-properties.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/required-non-properties.schema/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/required.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/required.schema/default/quicktype.swift
index b7efd00..b18bcce 100644
--- a/base/schema-swift/test/inputs/schema/required.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/required.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/rust-cycle-breaker-union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/rust-cycle-breaker-union.schema/default/quicktype.swift
index 16de064..ed9ba34 100644
--- a/base/schema-swift/test/inputs/schema/rust-cycle-breaker-union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/rust-cycle-breaker-union.schema/default/quicktype.swift
@@ -142,7 +142,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/schema-constraints.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/schema-constraints.schema/default/quicktype.swift
index c6e09bd..c18597e 100644
--- a/base/schema-swift/test/inputs/schema/schema-constraints.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/schema-constraints.schema/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/simple-ref.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/simple-ref.schema/default/quicktype.swift
index cacb513..0160730 100644
--- a/base/schema-swift/test/inputs/schema/simple-ref.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/simple-ref.schema/default/quicktype.swift
@@ -61,7 +61,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/strict-optional.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/strict-optional.schema/default/quicktype.swift
index c860a84..7764357 100644
--- a/base/schema-swift/test/inputs/schema/strict-optional.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/strict-optional.schema/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/top-level-array.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/top-level-array.schema/default/quicktype.swift
index def27eb..401f2dc 100644
--- a/base/schema-swift/test/inputs/schema/top-level-array.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/top-level-array.schema/default/quicktype.swift
@@ -86,7 +86,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/top-level-enum.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/top-level-enum.schema/default/quicktype.swift
index 7bd4773..6fa71e4 100644
--- a/base/schema-swift/test/inputs/schema/top-level-enum.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/top-level-enum.schema/default/quicktype.swift
@@ -17,7 +17,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/top-level-primitive-array.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/top-level-primitive-array.schema/default/quicktype.swift
index d18510a..584cbbe 100644
--- a/base/schema-swift/test/inputs/schema/top-level-primitive-array.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/top-level-primitive-array.schema/default/quicktype.swift
@@ -37,7 +37,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/top-level-primitive.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/top-level-primitive.schema/default/quicktype.swift
index de2a8d4..ba14f1e 100644
--- a/base/schema-swift/test/inputs/schema/top-level-primitive.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/top-level-primitive.schema/default/quicktype.swift
@@ -12,7 +12,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/tuple.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/tuple.schema/default/quicktype.swift
index 9dbb776..a61436a 100644
--- a/base/schema-swift/test/inputs/schema/tuple.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/tuple.schema/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/unevaluated-properties.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/unevaluated-properties.schema/default/quicktype.swift
index d13208a..c7bfe76 100644
--- a/base/schema-swift/test/inputs/schema/unevaluated-properties.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/unevaluated-properties.schema/default/quicktype.swift
@@ -261,7 +261,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/unicode-codepoint-length.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/unicode-codepoint-length.schema/default/quicktype.swift
index e9a606b..d7501d5 100644
--- a/base/schema-swift/test/inputs/schema/unicode-codepoint-length.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/unicode-codepoint-length.schema/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/union-int-double.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/union-int-double.schema/default/quicktype.swift
index 9f849a7..a52c994 100644
--- a/base/schema-swift/test/inputs/schema/union-int-double.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/union-int-double.schema/default/quicktype.swift
@@ -90,7 +90,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/union-list.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/union-list.schema/default/quicktype.swift
index 7e1d50a..c86e112 100644
--- a/base/schema-swift/test/inputs/schema/union-list.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/union-list.schema/default/quicktype.swift
@@ -127,7 +127,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/union.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/union.schema/default/quicktype.swift
index 0e4bb2c..6e54b58 100644
--- a/base/schema-swift/test/inputs/schema/union.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/union.schema/default/quicktype.swift
@@ -90,7 +90,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/uuid.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/uuid.schema/default/quicktype.swift
index 11b3db1..e41ca47 100644
--- a/base/schema-swift/test/inputs/schema/uuid.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/uuid.schema/default/quicktype.swift
@@ -107,7 +107,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/schema-swift/test/inputs/schema/vega-lite.schema/default/quicktype.swift b/head/schema-swift/test/inputs/schema/vega-lite.schema/default/quicktype.swift
index 6063825..6e82235 100644
--- a/base/schema-swift/test/inputs/schema/vega-lite.schema/default/quicktype.swift
+++ b/head/schema-swift/test/inputs/schema/vega-lite.schema/default/quicktype.swift
@@ -10380,7 +10380,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/00c36.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/00c36.json/default/quicktype.swift
index f0d7b9c..9474c0d 100644
--- a/base/swift/test/inputs/json/misc/00c36.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/00c36.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/00ec5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/00ec5.json/default/quicktype.swift
index cad5ef8..24ee751 100644
--- a/base/swift/test/inputs/json/misc/00ec5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/00ec5.json/default/quicktype.swift
@@ -623,7 +623,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/010b1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/010b1.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/010b1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/010b1.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/016af.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/016af.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/016af.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/016af.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/033b1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/033b1.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/033b1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/033b1.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/050b0.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/050b0.json/default/quicktype.swift
index 80e5b24..58198b2 100644
--- a/base/swift/test/inputs/json/misc/050b0.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/050b0.json/default/quicktype.swift
@@ -337,7 +337,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/06bee.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/06bee.json/default/quicktype.swift
index d1889f2..eb36fe3 100644
--- a/base/swift/test/inputs/json/misc/06bee.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/06bee.json/default/quicktype.swift
@@ -282,7 +282,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/07540.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/07540.json/default/quicktype.swift
index 24c82a7..2e6c550 100644
--- a/base/swift/test/inputs/json/misc/07540.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/07540.json/default/quicktype.swift
@@ -98,7 +98,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0779f.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0779f.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/0779f.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0779f.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/07c75.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/07c75.json/default/quicktype.swift
index bb900f6..d25f075 100644
--- a/base/swift/test/inputs/json/misc/07c75.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/07c75.json/default/quicktype.swift
@@ -258,7 +258,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/09f54.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/09f54.json/default/quicktype.swift
index b816836..869ab4a 100644
--- a/base/swift/test/inputs/json/misc/09f54.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/09f54.json/default/quicktype.swift
@@ -163,7 +163,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 c515c45..09fbaf5 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
@@ -186,7 +186,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 d41fa9d..e424526 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
@@ -1242,7 +1242,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0b91a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0b91a.json/default/quicktype.swift
index f78316a..b047142 100644
--- a/base/swift/test/inputs/json/misc/0b91a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0b91a.json/default/quicktype.swift
@@ -355,7 +355,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0cffa.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0cffa.json/default/quicktype.swift
index d5aa48c..fb3085a 100644
--- a/base/swift/test/inputs/json/misc/0cffa.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0cffa.json/default/quicktype.swift
@@ -731,7 +731,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0e0c2.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0e0c2.json/default/quicktype.swift
index dbdb08f..9de9530 100644
--- a/base/swift/test/inputs/json/misc/0e0c2.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0e0c2.json/default/quicktype.swift
@@ -526,7 +526,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/0fecf.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/0fecf.json/default/quicktype.swift
index 5e4009c..19aaafb 100644
--- a/base/swift/test/inputs/json/misc/0fecf.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/0fecf.json/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/10be4.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/10be4.json/default/quicktype.swift
index 4c430fb..f49d82c 100644
--- a/base/swift/test/inputs/json/misc/10be4.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/10be4.json/default/quicktype.swift
@@ -348,7 +348,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/112b5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/112b5.json/default/quicktype.swift
index 6c28a4d..b845a51 100644
--- a/base/swift/test/inputs/json/misc/112b5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/112b5.json/default/quicktype.swift
@@ -166,7 +166,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/127a1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/127a1.json/default/quicktype.swift
index c1d5009..ddd7e46 100644
--- a/base/swift/test/inputs/json/misc/127a1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/127a1.json/default/quicktype.swift
@@ -730,7 +730,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/13d8d.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/13d8d.json/default/quicktype.swift
index 5f40996..f0155ca 100644
--- a/base/swift/test/inputs/json/misc/13d8d.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/13d8d.json/default/quicktype.swift
@@ -262,7 +262,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/14d38.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/14d38.json/default/quicktype.swift
index ce9b794..22b6172 100644
--- a/base/swift/test/inputs/json/misc/14d38.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/14d38.json/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/167d6.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/167d6.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/167d6.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/167d6.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/176f1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/176f1.json/default/quicktype.swift
index 3b421a7..6ae6b82 100644
--- a/base/swift/test/inputs/json/misc/176f1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/176f1.json/default/quicktype.swift
@@ -267,7 +267,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/1a7f5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/1a7f5.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/1a7f5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/1a7f5.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/1b28c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/1b28c.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/1b28c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/1b28c.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/1b409.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/1b409.json/default/quicktype.swift
index 9a40abb..7da0f97 100644
--- a/base/swift/test/inputs/json/misc/1b409.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/1b409.json/default/quicktype.swift
@@ -445,7 +445,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/2465e.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/2465e.json/default/quicktype.swift
index 2bfe2f0..01548cb 100644
--- a/base/swift/test/inputs/json/misc/2465e.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/2465e.json/default/quicktype.swift
@@ -683,7 +683,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/24f52.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/24f52.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/24f52.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/24f52.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 350d0a3..10cb7cf 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
@@ -817,7 +817,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/26b49.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/26b49.json/default/quicktype.swift
index 36d8df6..b5809c3 100644
--- a/base/swift/test/inputs/json/misc/26b49.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/26b49.json/default/quicktype.swift
@@ -730,7 +730,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/26c9c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/26c9c.json/default/quicktype.swift
index 419aec3..1746635 100644
--- a/base/swift/test/inputs/json/misc/26c9c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/26c9c.json/default/quicktype.swift
@@ -1474,7 +1474,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/27332.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/27332.json/default/quicktype.swift
index 433f18e..33e3a22 100644
--- a/base/swift/test/inputs/json/misc/27332.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/27332.json/default/quicktype.swift
@@ -882,7 +882,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/29f47.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/29f47.json/default/quicktype.swift
index c62bb4b..10ab38e 100644
--- a/base/swift/test/inputs/json/misc/29f47.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/29f47.json/default/quicktype.swift
@@ -816,7 +816,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/2d4e2.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/2d4e2.json/default/quicktype.swift
index 9f1533d..b288b7e 100644
--- a/base/swift/test/inputs/json/misc/2d4e2.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/2d4e2.json/default/quicktype.swift
@@ -471,7 +471,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/2df80.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/2df80.json/default/quicktype.swift
index 299f888..d884ce2 100644
--- a/base/swift/test/inputs/json/misc/2df80.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/2df80.json/default/quicktype.swift
@@ -300,7 +300,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/31189.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/31189.json/default/quicktype.swift
index 9809934..8750c12 100644
--- a/base/swift/test/inputs/json/misc/31189.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/31189.json/default/quicktype.swift
@@ -231,7 +231,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/32431.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/32431.json/default/quicktype.swift
index 2014b8f..848ce1f 100644
--- a/base/swift/test/inputs/json/misc/32431.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/32431.json/default/quicktype.swift
@@ -402,7 +402,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 c874e3b..bc6d323 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
@@ -110,7 +110,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 5262e09..6b3dfb2 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
@@ -378,7 +378,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/33d2e.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/33d2e.json/default/quicktype.swift
index 83490d1..eb1ea9f 100644
--- a/base/swift/test/inputs/json/misc/33d2e.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/33d2e.json/default/quicktype.swift
@@ -306,7 +306,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/34702.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/34702.json/default/quicktype.swift
index b6376fc..ac5e4aa 100644
--- a/base/swift/test/inputs/json/misc/34702.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/34702.json/default/quicktype.swift
@@ -418,7 +418,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/3536b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/3536b.json/default/quicktype.swift
index d00a58f..f3975fe 100644
--- a/base/swift/test/inputs/json/misc/3536b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/3536b.json/default/quicktype.swift
@@ -270,7 +270,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/3659d.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/3659d.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/3659d.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/3659d.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/36d5d.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/36d5d.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/36d5d.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/36d5d.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/3a6b3.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/3a6b3.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/3a6b3.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/3a6b3.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/3e9a3.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/3e9a3.json/default/quicktype.swift
index 3b421a7..6ae6b82 100644
--- a/base/swift/test/inputs/json/misc/3e9a3.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/3e9a3.json/default/quicktype.swift
@@ -267,7 +267,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 c5762f4..2f6cea9 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
@@ -815,7 +815,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/421d4.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/421d4.json/default/quicktype.swift
index 99cae63..3968a9a 100644
--- a/base/swift/test/inputs/json/misc/421d4.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/421d4.json/default/quicktype.swift
@@ -877,7 +877,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/437e7.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/437e7.json/default/quicktype.swift
index f09c960..a79f6d4 100644
--- a/base/swift/test/inputs/json/misc/437e7.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/437e7.json/default/quicktype.swift
@@ -718,7 +718,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/43970.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/43970.json/default/quicktype.swift
index 4a3e561..c43f458 100644
--- a/base/swift/test/inputs/json/misc/43970.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/43970.json/default/quicktype.swift
@@ -90,7 +90,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/43eaf.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/43eaf.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/43eaf.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/43eaf.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/458db.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/458db.json/default/quicktype.swift
index 5a2fff9..e1b1b23 100644
--- a/base/swift/test/inputs/json/misc/458db.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/458db.json/default/quicktype.swift
@@ -355,7 +355,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4961a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4961a.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/4961a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4961a.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4a0d7.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4a0d7.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/4a0d7.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4a0d7.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4a455.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4a455.json/default/quicktype.swift
index feeebd6..cff942e 100644
--- a/base/swift/test/inputs/json/misc/4a455.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4a455.json/default/quicktype.swift
@@ -343,7 +343,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4d6fb.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4d6fb.json/default/quicktype.swift
index c8b6a97..394ca52 100644
--- a/base/swift/test/inputs/json/misc/4d6fb.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4d6fb.json/default/quicktype.swift
@@ -879,7 +879,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/4e336.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/4e336.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/4e336.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/4e336.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/54147.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/54147.json/default/quicktype.swift
index 5a95a7e..10e1731 100644
--- a/base/swift/test/inputs/json/misc/54147.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/54147.json/default/quicktype.swift
@@ -178,7 +178,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 f8f35b8..b13897c 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
@@ -191,7 +191,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/570ec.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/570ec.json/default/quicktype.swift
index 49bdd33..b856219 100644
--- a/base/swift/test/inputs/json/misc/570ec.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/570ec.json/default/quicktype.swift
@@ -312,7 +312,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/5dd0d.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/5dd0d.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/5dd0d.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/5dd0d.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 33ec656..3e13dae 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
@@ -94,7 +94,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/5eb20.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/5eb20.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/5eb20.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/5eb20.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/5f3a1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/5f3a1.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/5f3a1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/5f3a1.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/5f7fe.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/5f7fe.json/default/quicktype.swift
index 63b16fd..4fb4994 100644
--- a/base/swift/test/inputs/json/misc/5f7fe.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/5f7fe.json/default/quicktype.swift
@@ -1464,7 +1464,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/617e8.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/617e8.json/default/quicktype.swift
index 9c591e3..5dc5398 100644
--- a/base/swift/test/inputs/json/misc/617e8.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/617e8.json/default/quicktype.swift
@@ -1460,7 +1460,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/61b66.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/61b66.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/61b66.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/61b66.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6260a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6260a.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/6260a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6260a.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/65dec.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/65dec.json/default/quicktype.swift
index fac05a7..8203a67 100644
--- a/base/swift/test/inputs/json/misc/65dec.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/65dec.json/default/quicktype.swift
@@ -385,7 +385,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/66121.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/66121.json/default/quicktype.swift
index a3c5ec4..82b2b3f 100644
--- a/base/swift/test/inputs/json/misc/66121.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/66121.json/default/quicktype.swift
@@ -282,7 +282,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6617c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6617c.json/default/quicktype.swift
index 053b28f..f1494ea 100644
--- a/base/swift/test/inputs/json/misc/6617c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6617c.json/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/67c03.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/67c03.json/default/quicktype.swift
index eda1077..a8e0783 100644
--- a/base/swift/test/inputs/json/misc/67c03.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/67c03.json/default/quicktype.swift
@@ -111,7 +111,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/68c30.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/68c30.json/default/quicktype.swift
index c649689..82a5162 100644
--- a/base/swift/test/inputs/json/misc/68c30.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/68c30.json/default/quicktype.swift
@@ -263,7 +263,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6c155.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6c155.json/default/quicktype.swift
index d0ca29a..eb9af63 100644
--- a/base/swift/test/inputs/json/misc/6c155.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6c155.json/default/quicktype.swift
@@ -435,7 +435,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6de06.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6de06.json/default/quicktype.swift
index 52e2f6c..ef81ecd 100644
--- a/base/swift/test/inputs/json/misc/6de06.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6de06.json/default/quicktype.swift
@@ -925,7 +925,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 4007cc6..62fd053 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
@@ -817,7 +817,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/6eb00.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/6eb00.json/default/quicktype.swift
index 52c07f0..c98661f 100644
--- a/base/swift/test/inputs/json/misc/6eb00.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/6eb00.json/default/quicktype.swift
@@ -90,7 +90,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/70c77.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/70c77.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/70c77.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/70c77.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 8dd8b1d..f71745a 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
@@ -399,7 +399,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/75912.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/75912.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/75912.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/75912.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7681c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7681c.json/default/quicktype.swift
index 12ab5d2..28b069f 100644
--- a/base/swift/test/inputs/json/misc/7681c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7681c.json/default/quicktype.swift
@@ -732,7 +732,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/76ae1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/76ae1.json/default/quicktype.swift
index 4495220..ccb2027 100644
--- a/base/swift/test/inputs/json/misc/76ae1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/76ae1.json/default/quicktype.swift
@@ -1439,7 +1439,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 fd869bb..b036295 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
@@ -136,7 +136,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7d397.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7d397.json/default/quicktype.swift
index 8e69f1f..c6ce0c6 100644
--- a/base/swift/test/inputs/json/misc/7d397.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7d397.json/default/quicktype.swift
@@ -675,7 +675,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7d722.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7d722.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/7d722.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7d722.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7df41.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7df41.json/default/quicktype.swift
index 5a13310..2140b74 100644
--- a/base/swift/test/inputs/json/misc/7df41.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7df41.json/default/quicktype.swift
@@ -123,7 +123,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7dfa6.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7dfa6.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/7dfa6.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7dfa6.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7eb30.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7eb30.json/default/quicktype.swift
index f40e4f4..f367512 100644
--- a/base/swift/test/inputs/json/misc/7eb30.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7eb30.json/default/quicktype.swift
@@ -241,7 +241,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 53fe4d8..a0a4367 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
@@ -210,7 +210,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/7fbfb.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/7fbfb.json/default/quicktype.swift
index e74aa4e..ceeb081 100644
--- a/base/swift/test/inputs/json/misc/7fbfb.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/7fbfb.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 66fcb70..c73e70a 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
@@ -190,7 +190,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/82509.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/82509.json/default/quicktype.swift
index 60bec02..1ace6e7 100644
--- a/base/swift/test/inputs/json/misc/82509.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/82509.json/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/8592b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/8592b.json/default/quicktype.swift
index 589c2d5..15e9ec8 100644
--- a/base/swift/test/inputs/json/misc/8592b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/8592b.json/default/quicktype.swift
@@ -687,7 +687,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/8a62c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/8a62c.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/8a62c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/8a62c.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/908db.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/908db.json/default/quicktype.swift
index 13a1eaf..d8e097b 100644
--- a/base/swift/test/inputs/json/misc/908db.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/908db.json/default/quicktype.swift
@@ -147,7 +147,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9617f.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9617f.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/9617f.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9617f.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/96f7c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/96f7c.json/default/quicktype.swift
index 69bd7bf..4510594 100644
--- a/base/swift/test/inputs/json/misc/96f7c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/96f7c.json/default/quicktype.swift
@@ -75,7 +75,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9847b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9847b.json/default/quicktype.swift
index 6f6447b..9f629e5 100644
--- a/base/swift/test/inputs/json/misc/9847b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9847b.json/default/quicktype.swift
@@ -86,7 +86,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/996bd.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/996bd.json/default/quicktype.swift
index fb8176a..a592de6 100644
--- a/base/swift/test/inputs/json/misc/996bd.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/996bd.json/default/quicktype.swift
@@ -281,7 +281,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9a503.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9a503.json/default/quicktype.swift
index e15a638..78c36d4 100644
--- a/base/swift/test/inputs/json/misc/9a503.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9a503.json/default/quicktype.swift
@@ -264,7 +264,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 880874d..f77f3f2 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
@@ -216,7 +216,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/9eed5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/9eed5.json/default/quicktype.swift
index e518557..eb9b604 100644
--- a/base/swift/test/inputs/json/misc/9eed5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/9eed5.json/default/quicktype.swift
@@ -263,7 +263,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 c620ca1..5eae517 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
@@ -197,7 +197,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a3d8c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a3d8c.json/default/quicktype.swift
index 08147b8..b097420 100644
--- a/base/swift/test/inputs/json/misc/a3d8c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a3d8c.json/default/quicktype.swift
@@ -871,7 +871,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a45b0.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a45b0.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/a45b0.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a45b0.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a71df.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a71df.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/a71df.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a71df.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/a9691.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/a9691.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/a9691.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/a9691.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ab0d1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ab0d1.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/ab0d1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ab0d1.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/abb4b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/abb4b.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/abb4b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/abb4b.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ac944.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ac944.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/ac944.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ac944.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ad8be.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ad8be.json/default/quicktype.swift
index 4c430fb..f49d82c 100644
--- a/base/swift/test/inputs/json/misc/ad8be.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ad8be.json/default/quicktype.swift
@@ -348,7 +348,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ae7f0.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ae7f0.json/default/quicktype.swift
index 07d6444..ba9f2a9 100644
--- a/base/swift/test/inputs/json/misc/ae7f0.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ae7f0.json/default/quicktype.swift
@@ -510,7 +510,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ae9ca.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ae9ca.json/default/quicktype.swift
index dd3983c..1197bca 100644
--- a/base/swift/test/inputs/json/misc/ae9ca.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ae9ca.json/default/quicktype.swift
@@ -268,7 +268,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/af2d1.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/af2d1.json/default/quicktype.swift
index f5b5f1f..238154a 100644
--- a/base/swift/test/inputs/json/misc/af2d1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/af2d1.json/default/quicktype.swift
@@ -511,7 +511,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 bfc5dac..8144a0b 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
@@ -187,7 +187,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/b6f2c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/b6f2c.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/b6f2c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/b6f2c.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/b6fe5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/b6fe5.json/default/quicktype.swift
index f78c605..0061a9e 100644
--- a/base/swift/test/inputs/json/misc/b6fe5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/b6fe5.json/default/quicktype.swift
@@ -67,7 +67,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/b9f64.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/b9f64.json/default/quicktype.swift
index 7d33a0e..cb40fb8 100644
--- a/base/swift/test/inputs/json/misc/b9f64.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/b9f64.json/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/bb1ec.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/bb1ec.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/bb1ec.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/bb1ec.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/be234.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/be234.json/default/quicktype.swift
index 103b9b4..7af9bb4 100644
--- a/base/swift/test/inputs/json/misc/be234.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/be234.json/default/quicktype.swift
@@ -937,7 +937,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/c0356.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/c0356.json/default/quicktype.swift
index e19a23a..18955a5 100644
--- a/base/swift/test/inputs/json/misc/c0356.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/c0356.json/default/quicktype.swift
@@ -159,7 +159,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/c0a3a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/c0a3a.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/c0a3a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/c0a3a.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/c3303.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/c3303.json/default/quicktype.swift
index 7254f7b..3ad6fc1 100644
--- a/base/swift/test/inputs/json/misc/c3303.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/c3303.json/default/quicktype.swift
@@ -726,7 +726,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/c6cfd.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/c6cfd.json/default/quicktype.swift
index 815ca1c..c856380 100644
--- a/base/swift/test/inputs/json/misc/c6cfd.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/c6cfd.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/c8c7e.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/c8c7e.json/default/quicktype.swift
index 225fe0c..41210b5 100644
--- a/base/swift/test/inputs/json/misc/c8c7e.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/c8c7e.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cb0cc.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cb0cc.json/default/quicktype.swift
index d656ed6..1ea7b6a 100644
--- a/base/swift/test/inputs/json/misc/cb0cc.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cb0cc.json/default/quicktype.swift
@@ -180,7 +180,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cb81e.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cb81e.json/default/quicktype.swift
index 938db94..8979e02 100644
--- a/base/swift/test/inputs/json/misc/cb81e.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cb81e.json/default/quicktype.swift
@@ -115,7 +115,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ccd18.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ccd18.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/ccd18.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ccd18.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cd238.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cd238.json/default/quicktype.swift
index 339c2ed..248159f 100644
--- a/base/swift/test/inputs/json/misc/cd238.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cd238.json/default/quicktype.swift
@@ -271,7 +271,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cd463.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cd463.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/cd463.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cd463.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cda6c.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cda6c.json/default/quicktype.swift
index 9d67aad..3e0546a 100644
--- a/base/swift/test/inputs/json/misc/cda6c.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cda6c.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/cfbce.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/cfbce.json/default/quicktype.swift
index a4eb5c5..34a601f 100644
--- a/base/swift/test/inputs/json/misc/cfbce.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/cfbce.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/d0908.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/d0908.json/default/quicktype.swift
index c496fdd..3fa9b91 100644
--- a/base/swift/test/inputs/json/misc/d0908.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/d0908.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 2f42641..8dc2f7f 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
@@ -186,7 +186,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 21d5aa0..813fae5 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
@@ -816,7 +816,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/dc44f.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/dc44f.json/default/quicktype.swift
index 7a81970..2ce7f19 100644
--- a/base/swift/test/inputs/json/misc/dc44f.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/dc44f.json/default/quicktype.swift
@@ -424,7 +424,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/dd1ce.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/dd1ce.json/default/quicktype.swift
index 7a81970..2ce7f19 100644
--- a/base/swift/test/inputs/json/misc/dd1ce.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/dd1ce.json/default/quicktype.swift
@@ -424,7 +424,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/dec3a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/dec3a.json/default/quicktype.swift
index 3b87550..d31b801 100644
--- a/base/swift/test/inputs/json/misc/dec3a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/dec3a.json/default/quicktype.swift
@@ -467,7 +467,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 57bc95a..ff8fe52 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
@@ -811,7 +811,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e0ac7.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e0ac7.json/default/quicktype.swift
index 09bfe08..218eebb 100644
--- a/base/swift/test/inputs/json/misc/e0ac7.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e0ac7.json/default/quicktype.swift
@@ -725,7 +725,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 f934d0d..5b2538e 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
@@ -815,7 +815,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e2a58.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e2a58.json/default/quicktype.swift
index 58a86f0..b4723b2 100644
--- a/base/swift/test/inputs/json/misc/e2a58.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e2a58.json/default/quicktype.swift
@@ -86,7 +86,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e324e.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e324e.json/default/quicktype.swift
index 8df153c..27d4740 100644
--- a/base/swift/test/inputs/json/misc/e324e.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e324e.json/default/quicktype.swift
@@ -671,7 +671,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e53b5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e53b5.json/default/quicktype.swift
index 9f793ab..001649b 100644
--- a/base/swift/test/inputs/json/misc/e53b5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e53b5.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e64a0.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e64a0.json/default/quicktype.swift
index 6c28a4d..b845a51 100644
--- a/base/swift/test/inputs/json/misc/e64a0.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e64a0.json/default/quicktype.swift
@@ -166,7 +166,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e8a0b.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e8a0b.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/e8a0b.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e8a0b.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/e8b04.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/e8b04.json/default/quicktype.swift
index 9ea3ed7..7e6fcc2 100644
--- a/base/swift/test/inputs/json/misc/e8b04.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/e8b04.json/default/quicktype.swift
@@ -1703,7 +1703,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/ed095.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/ed095.json/default/quicktype.swift
index 0627d1c..35c6020 100644
--- a/base/swift/test/inputs/json/misc/ed095.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/ed095.json/default/quicktype.swift
@@ -37,7 +37,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f22f5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f22f5.json/default/quicktype.swift
index 7d4d73e..a5d24b1 100644
--- a/base/swift/test/inputs/json/misc/f22f5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f22f5.json/default/quicktype.swift
@@ -506,7 +506,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f3139.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f3139.json/default/quicktype.swift
index 6f6447b..9f629e5 100644
--- a/base/swift/test/inputs/json/misc/f3139.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f3139.json/default/quicktype.swift
@@ -86,7 +86,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f3edf.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f3edf.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/f3edf.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f3edf.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f466a.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f466a.json/default/quicktype.swift
index be4a015..3d90cf7 100644
--- a/base/swift/test/inputs/json/misc/f466a.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f466a.json/default/quicktype.swift
@@ -106,7 +106,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f6a65.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f6a65.json/default/quicktype.swift
index dfa5158..e78c797 100644
--- a/base/swift/test/inputs/json/misc/f6a65.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f6a65.json/default/quicktype.swift
@@ -733,7 +733,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f74d5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f74d5.json/default/quicktype.swift
index 79d8c4a..1786bfc 100644
--- a/base/swift/test/inputs/json/misc/f74d5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f74d5.json/default/quicktype.swift
@@ -864,7 +864,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f82d9.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f82d9.json/default/quicktype.swift
index 52db13b..eeeb21c 100644
--- a/base/swift/test/inputs/json/misc/f82d9.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f82d9.json/default/quicktype.swift
@@ -751,7 +751,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/f974d.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/f974d.json/default/quicktype.swift
index aea6f2b..1b96582 100644
--- a/base/swift/test/inputs/json/misc/f974d.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/f974d.json/default/quicktype.swift
@@ -71,7 +71,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/faff5.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/faff5.json/default/quicktype.swift
index cfcd5c9..da48683 100644
--- a/base/swift/test/inputs/json/misc/faff5.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/faff5.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/fcca3.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/fcca3.json/default/quicktype.swift
index 7d5bdca..8a9dfdb 100644
--- a/base/swift/test/inputs/json/misc/fcca3.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/fcca3.json/default/quicktype.swift
@@ -1676,7 +1676,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/misc/fd329.json/default/quicktype.swift b/head/swift/test/inputs/json/misc/fd329.json/default/quicktype.swift
index b816836..869ab4a 100644
--- a/base/swift/test/inputs/json/misc/fd329.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/misc/fd329.json/default/quicktype.swift
@@ -163,7 +163,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/blns-object.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/blns-object.json/default/quicktype.swift
index 72982c6..5353211 100644
--- a/base/swift/test/inputs/json/priority/blns-object.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/blns-object.json/default/quicktype.swift
@@ -2519,7 +2519,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug2037.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug2037.json/default/quicktype.swift
index 1bc991f..96c5908 100644
--- a/base/swift/test/inputs/json/priority/bug2037.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug2037.json/default/quicktype.swift
@@ -186,7 +186,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug2521.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug2521.json/default/quicktype.swift
index 5889505..2825844 100644
--- a/base/swift/test/inputs/json/priority/bug2521.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug2521.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 928888f..a832597 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
@@ -107,7 +107,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 c4912c5..204a87d 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
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug2793.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug2793.json/default/quicktype.swift
index 77e7676..3aadff4 100644
--- a/base/swift/test/inputs/json/priority/bug2793.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug2793.json/default/quicktype.swift
@@ -150,7 +150,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug427.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug427.json/default/quicktype.swift
index bbc7063..8b0fc71 100644
--- a/base/swift/test/inputs/json/priority/bug427.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug427.json/default/quicktype.swift
@@ -4016,7 +4016,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug790.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug790.json/default/quicktype.swift
index 0c6d0d9..647893e 100644
--- a/base/swift/test/inputs/json/priority/bug790.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug790.json/default/quicktype.swift
@@ -83,7 +83,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug855-short.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug855-short.json/default/quicktype.swift
index 06fdd7c..c449097 100644
--- a/base/swift/test/inputs/json/priority/bug855-short.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug855-short.json/default/quicktype.swift
@@ -98,7 +98,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/bug863.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/bug863.json/default/quicktype.swift
index 1dd3989..8dbd1ef 100644
--- a/base/swift/test/inputs/json/priority/bug863.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/bug863.json/default/quicktype.swift
@@ -395,7 +395,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/coin-pairs.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/coin-pairs.json/default/quicktype.swift
index 34cde92..531d006 100644
--- a/base/swift/test/inputs/json/priority/coin-pairs.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/coin-pairs.json/default/quicktype.swift
@@ -131,7 +131,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/access-level-internal--a653a863c206/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/access-level-internal--a653a863c206/quicktype.swift
index 72a9ed7..561b381 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/access-level-internal--a653a863c206/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/access-level-internal--a653a863c206/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/access-level-public--bc6fc37ec004/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/access-level-public--bc6fc37ec004/quicktype.swift
index 5f48683..1121c05 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/access-level-public--bc6fc37ec004/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/access-level-public--bc6fc37ec004/quicktype.swift
@@ -3110,7 +3110,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/coding-keys-false--33058e42a49b/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/coding-keys-false--33058e42a49b/quicktype.swift
index 72a9ed7..561b381 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/coding-keys-false--33058e42a49b/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/coding-keys-false--33058e42a49b/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
index 64803ac..f0f2866 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/default/quicktype.swift
index 72a9ed7..561b381 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/default/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/density-dense--3bfb4c22cfd0/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/density-dense--3bfb4c22cfd0/quicktype.swift
index 9ec6041..0a5d875 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/density-dense--3bfb4c22cfd0/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/density-dense--3bfb4c22cfd0/quicktype.swift
@@ -2394,7 +2394,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
index e124cd4..dc3b561 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
@@ -3124,7 +3124,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/mutable-properties-true--a9feb4120f94/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/mutable-properties-true--a9feb4120f94/quicktype.swift
index 7c57389..108a6a1 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/mutable-properties-true--a9feb4120f94/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/mutable-properties-true--a9feb4120f94/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/protocol-equatable--bd9068f466c1/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/protocol-equatable--bd9068f466c1/quicktype.swift
index 60b7894..844f789 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/protocol-equatable--bd9068f466c1/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/protocol-equatable--bd9068f466c1/quicktype.swift
@@ -2864,7 +2864,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/protocol-hashable--739b516c7897/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/protocol-hashable--739b516c7897/quicktype.swift
index 740138a..7416436 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/protocol-hashable--739b516c7897/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/protocol-hashable--739b516c7897/quicktype.swift
@@ -2864,7 +2864,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/sendable-true--1c3982c78639/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/sendable-true--1c3982c78639/quicktype.swift
index 3bfe783..c8d0d8f 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/sendable-true--1c3982c78639/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/sendable-true--1c3982c78639/quicktype.swift
@@ -2780,7 +2780,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
index 0c93bd0..9d7d7db 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
@@ -3124,7 +3124,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/struct-or-class-class--238d6c8a12d4/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
index cebfbbd..d4a0be9 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
@@ -3124,7 +3124,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations1.json/support-linux-false--4bd8c552e09a/quicktype.swift b/head/swift/test/inputs/json/priority/combinations1.json/support-linux-false--4bd8c552e09a/quicktype.swift
index 0f7ba3b..8b870f8 100644
--- a/base/swift/test/inputs/json/priority/combinations1.json/support-linux-false--4bd8c552e09a/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations1.json/support-linux-false--4bd8c552e09a/quicktype.swift
@@ -2779,7 +2779,13 @@ enum Jacutinga: Codable {
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
-        decoder.dateDecodingStrategy = .iso8601
+        decoder.dateDecodingStrategy = .custom { decoder in
+            let dateStr = try decoder.singleValueContainer().decode(String.self).uppercased()
+            let dateData = try JSONEncoder().encode(dateStr)
+            let dateDecoder = JSONDecoder()
+            dateDecoder.dateDecodingStrategy = .iso8601
+            return try dateDecoder.decode(Date.self, from: dateData)
+        }
     }
     return decoder
 }
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/access-level-internal--a653a863c206/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/access-level-internal--a653a863c206/quicktype.swift
index 37f7847..7f9e89c 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/access-level-internal--a653a863c206/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/access-level-internal--a653a863c206/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/access-level-public--bc6fc37ec004/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/access-level-public--bc6fc37ec004/quicktype.swift
index 60c7b11..1439038 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/access-level-public--bc6fc37ec004/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/access-level-public--bc6fc37ec004/quicktype.swift
@@ -2822,7 +2822,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/coding-keys-false--33058e42a49b/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/coding-keys-false--33058e42a49b/quicktype.swift
index 37f7847..7f9e89c 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/coding-keys-false--33058e42a49b/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/coding-keys-false--33058e42a49b/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
index 5b26328..9c3d359 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/default/quicktype.swift
index 37f7847..7f9e89c 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/default/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/density-dense--3bfb4c22cfd0/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/density-dense--3bfb4c22cfd0/quicktype.swift
index 4ea01ea..810ef90 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/density-dense--3bfb4c22cfd0/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/density-dense--3bfb4c22cfd0/quicktype.swift
@@ -2246,7 +2246,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
index 9d37c26..84adc0a 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
@@ -2833,7 +2833,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/mutable-properties-true--a9feb4120f94/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/mutable-properties-true--a9feb4120f94/quicktype.swift
index 29f7c4d..38dc50f 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/mutable-properties-true--a9feb4120f94/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/mutable-properties-true--a9feb4120f94/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/protocol-equatable--bd9068f466c1/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/protocol-equatable--bd9068f466c1/quicktype.swift
index b0a42d6..d41fa0b 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/protocol-equatable--bd9068f466c1/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/protocol-equatable--bd9068f466c1/quicktype.swift
@@ -2610,7 +2610,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/protocol-hashable--739b516c7897/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/protocol-hashable--739b516c7897/quicktype.swift
index df9a33c..e203dbe 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/protocol-hashable--739b516c7897/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/protocol-hashable--739b516c7897/quicktype.swift
@@ -2610,7 +2610,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/sendable-true--1c3982c78639/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/sendable-true--1c3982c78639/quicktype.swift
index 9dc4ae1..c6e2e4a 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/sendable-true--1c3982c78639/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/sendable-true--1c3982c78639/quicktype.swift
@@ -2544,7 +2544,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
index 1cbf677..990dcdc 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
@@ -2833,7 +2833,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/struct-or-class-class--238d6c8a12d4/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
index 10a0a78..0e565fa 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
@@ -2833,7 +2833,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations2.json/support-linux-false--4bd8c552e09a/quicktype.swift b/head/swift/test/inputs/json/priority/combinations2.json/support-linux-false--4bd8c552e09a/quicktype.swift
index 1524b2f..8237493 100644
--- a/base/swift/test/inputs/json/priority/combinations2.json/support-linux-false--4bd8c552e09a/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations2.json/support-linux-false--4bd8c552e09a/quicktype.swift
@@ -2543,7 +2543,13 @@ enum Shakespearolater: Codable {
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
-        decoder.dateDecodingStrategy = .iso8601
+        decoder.dateDecodingStrategy = .custom { decoder in
+            let dateStr = try decoder.singleValueContainer().decode(String.self).uppercased()
+            let dateData = try JSONEncoder().encode(dateStr)
+            let dateDecoder = JSONDecoder()
+            dateDecoder.dateDecodingStrategy = .iso8601
+            return try dateDecoder.decode(Date.self, from: dateData)
+        }
     }
     return decoder
 }
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/access-level-internal--a653a863c206/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/access-level-internal--a653a863c206/quicktype.swift
index 874929f..0ea3227 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/access-level-internal--a653a863c206/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/access-level-internal--a653a863c206/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/access-level-public--bc6fc37ec004/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/access-level-public--bc6fc37ec004/quicktype.swift
index e7e7a8f..b789b08 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/access-level-public--bc6fc37ec004/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/access-level-public--bc6fc37ec004/quicktype.swift
@@ -3461,7 +3461,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/coding-keys-false--33058e42a49b/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/coding-keys-false--33058e42a49b/quicktype.swift
index 874929f..0ea3227 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/coding-keys-false--33058e42a49b/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/coding-keys-false--33058e42a49b/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
index 2b8f044..9f14fbb 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/default/quicktype.swift
index 874929f..0ea3227 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/default/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/density-dense--3bfb4c22cfd0/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/density-dense--3bfb4c22cfd0/quicktype.swift
index e498bcc..d605179 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/density-dense--3bfb4c22cfd0/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/density-dense--3bfb4c22cfd0/quicktype.swift
@@ -2626,7 +2626,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
index c8e32ee..8b16419 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
@@ -3476,7 +3476,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/mutable-properties-true--a9feb4120f94/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/mutable-properties-true--a9feb4120f94/quicktype.swift
index 1e67794..4cd5536 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/mutable-properties-true--a9feb4120f94/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/mutable-properties-true--a9feb4120f94/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/protocol-equatable--bd9068f466c1/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/protocol-equatable--bd9068f466c1/quicktype.swift
index 0abc97a..30cfbad 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/protocol-equatable--bd9068f466c1/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/protocol-equatable--bd9068f466c1/quicktype.swift
@@ -3169,7 +3169,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/protocol-hashable--739b516c7897/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/protocol-hashable--739b516c7897/quicktype.swift
index 0d99745..84095ad 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/protocol-hashable--739b516c7897/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/protocol-hashable--739b516c7897/quicktype.swift
@@ -3169,7 +3169,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/sendable-true--1c3982c78639/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/sendable-true--1c3982c78639/quicktype.swift
index 46f0024..6ab6560 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/sendable-true--1c3982c78639/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/sendable-true--1c3982c78639/quicktype.swift
@@ -3079,7 +3079,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
index 16a375b..07ebe1c 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
@@ -3476,7 +3476,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/struct-or-class-class--238d6c8a12d4/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
index 4c215fb..f1343ef 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
@@ -3476,7 +3476,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations3.json/support-linux-false--4bd8c552e09a/quicktype.swift b/head/swift/test/inputs/json/priority/combinations3.json/support-linux-false--4bd8c552e09a/quicktype.swift
index 5b1350b..a7f87b2 100644
--- a/base/swift/test/inputs/json/priority/combinations3.json/support-linux-false--4bd8c552e09a/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations3.json/support-linux-false--4bd8c552e09a/quicktype.swift
@@ -3078,7 +3078,13 @@ enum Protext: Codable {
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
-        decoder.dateDecodingStrategy = .iso8601
+        decoder.dateDecodingStrategy = .custom { decoder in
+            let dateStr = try decoder.singleValueContainer().decode(String.self).uppercased()
+            let dateData = try JSONEncoder().encode(dateStr)
+            let dateDecoder = JSONDecoder()
+            dateDecoder.dateDecodingStrategy = .iso8601
+            return try dateDecoder.decode(Date.self, from: dateData)
+        }
     }
     return decoder
 }
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/access-level-internal--a653a863c206/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/access-level-internal--a653a863c206/quicktype.swift
index e82a59a..981d492 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/access-level-internal--a653a863c206/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/access-level-internal--a653a863c206/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/access-level-public--bc6fc37ec004/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/access-level-public--bc6fc37ec004/quicktype.swift
index 2e51ed5..e041cbb 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/access-level-public--bc6fc37ec004/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/access-level-public--bc6fc37ec004/quicktype.swift
@@ -4021,7 +4021,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/coding-keys-false--33058e42a49b/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/coding-keys-false--33058e42a49b/quicktype.swift
index e82a59a..981d492 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/coding-keys-false--33058e42a49b/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/coding-keys-false--33058e42a49b/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
index 537dd54..13f2dcb 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/default/quicktype.swift
index e82a59a..981d492 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/default/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/density-dense--3bfb4c22cfd0/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/density-dense--3bfb4c22cfd0/quicktype.swift
index 7c1559f..0c5efd7 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/density-dense--3bfb4c22cfd0/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/density-dense--3bfb4c22cfd0/quicktype.swift
@@ -3053,7 +3053,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
index 7509976..9584a40 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
@@ -4038,7 +4038,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/mutable-properties-true--a9feb4120f94/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/mutable-properties-true--a9feb4120f94/quicktype.swift
index 988b31b..f0db46c 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/mutable-properties-true--a9feb4120f94/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/mutable-properties-true--a9feb4120f94/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/protocol-equatable--bd9068f466c1/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/protocol-equatable--bd9068f466c1/quicktype.swift
index 7df89bb..05796d9 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/protocol-equatable--bd9068f466c1/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/protocol-equatable--bd9068f466c1/quicktype.swift
@@ -3685,7 +3685,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/protocol-hashable--739b516c7897/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/protocol-hashable--739b516c7897/quicktype.swift
index dac23fd..c34957d 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/protocol-hashable--739b516c7897/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/protocol-hashable--739b516c7897/quicktype.swift
@@ -3685,7 +3685,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/sendable-true--1c3982c78639/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/sendable-true--1c3982c78639/quicktype.swift
index c167164..94537b0 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/sendable-true--1c3982c78639/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/sendable-true--1c3982c78639/quicktype.swift
@@ -3583,7 +3583,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
index eb336e8..fc5e25d 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/sendable-true__struct-or-class-class--265b1fe2e96e/quicktype.swift
@@ -4038,7 +4038,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/struct-or-class-class--238d6c8a12d4/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
index cbaa1ae..296310c 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/struct-or-class-class--238d6c8a12d4/quicktype.swift
@@ -4038,7 +4038,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/combinations4.json/support-linux-false--4bd8c552e09a/quicktype.swift b/head/swift/test/inputs/json/priority/combinations4.json/support-linux-false--4bd8c552e09a/quicktype.swift
index 967e80f..0340673 100644
--- a/base/swift/test/inputs/json/priority/combinations4.json/support-linux-false--4bd8c552e09a/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combinations4.json/support-linux-false--4bd8c552e09a/quicktype.swift
@@ -3582,7 +3582,13 @@ extension WrothyClass {
 func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
-        decoder.dateDecodingStrategy = .iso8601
+        decoder.dateDecodingStrategy = .custom { decoder in
+            let dateStr = try decoder.singleValueContainer().decode(String.self).uppercased()
+            let dateData = try JSONEncoder().encode(dateStr)
+            let dateDecoder = JSONDecoder()
+            dateDecoder.dateDecodingStrategy = .iso8601
+            return try dateDecoder.decode(Date.self, from: dateData)
+        }
     }
     return decoder
 }
diff --git a/base/swift/test/inputs/json/priority/combined-enum.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/combined-enum.json/default/quicktype.swift
index 5ba29f5..5457846 100644
--- a/base/swift/test/inputs/json/priority/combined-enum.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/combined-enum.json/default/quicktype.swift
@@ -109,7 +109,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/direct-recursive.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/direct-recursive.json/default/quicktype.swift
index a7a7b05..cc12143 100644
--- a/base/swift/test/inputs/json/priority/direct-recursive.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/direct-recursive.json/default/quicktype.swift
@@ -80,7 +80,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/empty-enum.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/empty-enum.json/default/quicktype.swift
index 81059c2..ceab4e4 100644
--- a/base/swift/test/inputs/json/priority/empty-enum.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/empty-enum.json/default/quicktype.swift
@@ -99,7 +99,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/identifiers.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/identifiers.json/default/quicktype.swift
index ab84e26..d945b0e 100644
--- a/base/swift/test/inputs/json/priority/identifiers.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/identifiers.json/default/quicktype.swift
@@ -350,7 +350,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/issue2680-object-array.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/issue2680-object-array.json/default/quicktype.swift
index 7fba3b3..1dc3667 100644
--- a/base/swift/test/inputs/json/priority/issue2680-object-array.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/issue2680-object-array.json/default/quicktype.swift
@@ -82,7 +82,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/issue2680-scalar-array.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/issue2680-scalar-array.json/default/quicktype.swift
index df272ee..d9aacba 100644
--- a/base/swift/test/inputs/json/priority/issue2680-scalar-array.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/issue2680-scalar-array.json/default/quicktype.swift
@@ -37,7 +37,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 4493f5b..f57dd74 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
@@ -17484,7 +17484,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 572e956..58349c0 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
@@ -19667,7 +19667,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 8cf07fc..2f3b7b0 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
@@ -19668,7 +19668,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 e1c0665..229abcb 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
@@ -17484,7 +17484,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/quicktype.swift
index e878784..d35e9b9 100644
--- a/base/swift/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/quicktype.swift
@@ -87,7 +87,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/list.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/list.json/default/quicktype.swift
index 7b5c7dd..d54ae29 100644
--- a/base/swift/test/inputs/json/priority/list.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/list.json/default/quicktype.swift
@@ -65,7 +65,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/name-style.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/name-style.json/default/quicktype.swift
index a014fe2..59297c2 100644
--- a/base/swift/test/inputs/json/priority/name-style.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/name-style.json/default/quicktype.swift
@@ -79,7 +79,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/nbl-stats.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/nbl-stats.json/default/quicktype.swift
index 31f613d..b1cf3cd 100644
--- a/base/swift/test/inputs/json/priority/nbl-stats.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/nbl-stats.json/default/quicktype.swift
@@ -1559,7 +1559,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/nested-objects.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/nested-objects.json/default/quicktype.swift
index 5a4215c..7cc8535 100644
--- a/base/swift/test/inputs/json/priority/nested-objects.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/nested-objects.json/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/no-classes.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/no-classes.json/default/quicktype.swift
index aedd037..dd30d6e 100644
--- a/base/swift/test/inputs/json/priority/no-classes.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/no-classes.json/default/quicktype.swift
@@ -12,7 +12,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/number-map.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/number-map.json/default/quicktype.swift
index ef738ef..a509c47 100644
--- a/base/swift/test/inputs/json/priority/number-map.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/number-map.json/default/quicktype.swift
@@ -55,7 +55,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/omit-empty.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/omit-empty.json/default/quicktype.swift
index 981aee1..6749620 100644
--- a/base/swift/test/inputs/json/priority/omit-empty.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/omit-empty.json/default/quicktype.swift
@@ -103,7 +103,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/optional-union.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/optional-union.json/default/quicktype.swift
index 1dded19..5005116 100644
--- a/base/swift/test/inputs/json/priority/optional-union.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/optional-union.json/default/quicktype.swift
@@ -110,7 +110,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/php-mixed-union.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/php-mixed-union.json/default/quicktype.swift
index 015bf92..f1c8007 100644
--- a/base/swift/test/inputs/json/priority/php-mixed-union.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/php-mixed-union.json/default/quicktype.swift
@@ -148,7 +148,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/php-validation.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/php-validation.json/default/quicktype.swift
index f8ddb6a..58af76b 100644
--- a/base/swift/test/inputs/json/priority/php-validation.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/php-validation.json/default/quicktype.swift
@@ -71,7 +71,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/recursive.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/recursive.json/default/quicktype.swift
index 47a6a2f..0f83376 100644
--- a/base/swift/test/inputs/json/priority/recursive.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/recursive.json/default/quicktype.swift
@@ -979,7 +979,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/simple-identifiers.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/simple-identifiers.json/default/quicktype.swift
index fb8031b..6252a93 100644
--- a/base/swift/test/inputs/json/priority/simple-identifiers.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/simple-identifiers.json/default/quicktype.swift
@@ -87,7 +87,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/union-constructor-clash.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/union-constructor-clash.json/default/quicktype.swift
index 151b807..bce9c7c 100644
--- a/base/swift/test/inputs/json/priority/union-constructor-clash.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/union-constructor-clash.json/default/quicktype.swift
@@ -131,7 +131,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/unions.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/unions.json/default/quicktype.swift
index c9e90f0..2c747c8 100644
--- a/base/swift/test/inputs/json/priority/unions.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/unions.json/default/quicktype.swift
@@ -177,7 +177,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/url.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/url.json/default/quicktype.swift
index 83de0ed..270f7a8 100644
--- a/base/swift/test/inputs/json/priority/url.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/url.json/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/priority/uuids.json/default/quicktype.swift b/head/swift/test/inputs/json/priority/uuids.json/default/quicktype.swift
index 8d44e18..8ffd62f 100644
--- a/base/swift/test/inputs/json/priority/uuids.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/priority/uuids.json/default/quicktype.swift
@@ -75,7 +75,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/bitcoin-block.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/bitcoin-block.json/default/quicktype.swift
index aea6f2b..1b96582 100644
--- a/base/swift/test/inputs/json/samples/bitcoin-block.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/bitcoin-block.json/default/quicktype.swift
@@ -71,7 +71,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/copy-with-property.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/copy-with-property.json/default/quicktype.swift
index 853e5db..5843756 100644
--- a/base/swift/test/inputs/json/samples/copy-with-property.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/copy-with-property.json/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/getting-started.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/getting-started.json/default/quicktype.swift
index a0a83e9..4073bfe 100644
--- a/base/swift/test/inputs/json/samples/getting-started.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/getting-started.json/default/quicktype.swift
@@ -59,7 +59,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 9c77c7a..06b8284 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
@@ -1663,7 +1663,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/kitchen-sink.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/kitchen-sink.json/default/quicktype.swift
index 6a2d797..eaa5c2d 100644
--- a/base/swift/test/inputs/json/samples/kitchen-sink.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/kitchen-sink.json/default/quicktype.swift
@@ -314,7 +314,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         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 e71f74e..43044f6 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
@@ -163,7 +163,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/objc-control-characters.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/objc-control-characters.json/default/quicktype.swift
index 16f2e23..87a9381 100644
--- a/base/swift/test/inputs/json/samples/objc-control-characters.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/objc-control-characters.json/default/quicktype.swift
@@ -68,7 +68,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/pokedex.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/pokedex.json/default/quicktype.swift
index 1ab9053..94ea7f4 100644
--- a/base/swift/test/inputs/json/samples/pokedex.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/pokedex.json/default/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/reddit.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/reddit.json/default/quicktype.swift
index b42ae8b..4c395f0 100644
--- a/base/swift/test/inputs/json/samples/reddit.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/reddit.json/default/quicktype.swift
@@ -798,7 +798,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/simple-object.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift b/head/swift/test/inputs/json/samples/simple-object.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
index fc0fda5..343a149 100644
--- a/base/swift/test/inputs/json/samples/simple-object.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/simple-object.json/coding-keys-protocol-CaseIterable--169323764eaa/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/simple-object.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/simple-object.json/default/quicktype.swift
index b83245c..0c8a730 100644
--- a/base/swift/test/inputs/json/samples/simple-object.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/simple-object.json/default/quicktype.swift
@@ -63,7 +63,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/simple-object.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift b/head/swift/test/inputs/json/samples/simple-object.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
index 86593ec..577cfdf 100644
--- a/base/swift/test/inputs/json/samples/simple-object.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/simple-object.json/final-classes-true__struct-or-class-class--d3c62ec7414d/quicktype.swift
@@ -70,7 +70,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/simple-object.json/protocol-hashable--739b516c7897/quicktype.swift b/head/swift/test/inputs/json/samples/simple-object.json/protocol-hashable--739b516c7897/quicktype.swift
index 1188abe..ff091e3 100644
--- a/base/swift/test/inputs/json/samples/simple-object.json/protocol-hashable--739b516c7897/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/simple-object.json/protocol-hashable--739b516c7897/quicktype.swift
@@ -69,7 +69,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/spotify-album.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/spotify-album.json/default/quicktype.swift
index 37d8bbb..78e4588 100644
--- a/base/swift/test/inputs/json/samples/spotify-album.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/spotify-album.json/default/quicktype.swift
@@ -531,7 +531,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/us-avg-temperatures.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/us-avg-temperatures.json/default/quicktype.swift
index b816836..869ab4a 100644
--- a/base/swift/test/inputs/json/samples/us-avg-temperatures.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/us-avg-temperatures.json/default/quicktype.swift
@@ -163,7 +163,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift/test/inputs/json/samples/us-senators.json/default/quicktype.swift b/head/swift/test/inputs/json/samples/us-senators.json/default/quicktype.swift
index 509c730..64cc57f 100644
--- a/base/swift/test/inputs/json/samples/us-senators.json/default/quicktype.swift
+++ b/head/swift/test/inputs/json/samples/us-senators.json/default/quicktype.swift
@@ -463,7 +463,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift-sendable-objective-c/test/inputs/json/priority/combinations1.json/default/quicktype.swift b/head/swift-sendable-objective-c/test/inputs/json/priority/combinations1.json/default/quicktype.swift
index 78d4089..fe9c314 100644
--- a/base/swift-sendable-objective-c/test/inputs/json/priority/combinations1.json/default/quicktype.swift
+++ b/head/swift-sendable-objective-c/test/inputs/json/priority/combinations1.json/default/quicktype.swift
@@ -3124,7 +3124,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/default/quicktype.swift b/head/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/default/quicktype.swift
index bfb8b95..98e6d35 100644
--- a/base/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/default/quicktype.swift
+++ b/head/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/default/quicktype.swift
@@ -272,7 +272,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
diff --git a/base/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/struct-or-class-struct--aa0cc2601d8a/quicktype.swift b/head/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/struct-or-class-struct--aa0cc2601d8a/quicktype.swift
index 4dcc49a..981401e 100644
--- a/base/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/struct-or-class-struct--aa0cc2601d8a/quicktype.swift
+++ b/head/swift-sendable-objective-c/test/inputs/json/samples/pokedex.json/struct-or-class-struct--aa0cc2601d8a/quicktype.swift
@@ -240,7 +240,7 @@ func newJSONDecoder() -> JSONDecoder {
     let decoder = JSONDecoder()
     decoder.dateDecodingStrategy = .custom({ (decoder) -> Date in
         let container = try decoder.singleValueContainer()
-        let dateStr = try container.decode(String.self)
+        let dateStr = try container.decode(String.self).uppercased()
 
         let formatter = DateFormatter()
         formatter.calendar = Calendar(identifier: .iso8601)
