diff --git a/base/python/test/inputs/json/misc/0a358.json/default/quicktype.py b/head/python/test/inputs/json/misc/0a358.json/default/quicktype.py
index 641c8a2..8d5e455 100644
--- a/base/python/test/inputs/json/misc/0a358.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/0a358.json/default/quicktype.py
@@ -13,7 +13,7 @@ def from_str(x: Any) -> str:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_int(x: Any) -> int:
diff --git a/base/python/test/inputs/json/misc/0a91a.json/default/quicktype.py b/head/python/test/inputs/json/misc/0a91a.json/default/quicktype.py
index 24351d6..2414926 100644
--- a/base/python/test/inputs/json/misc/0a91a.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/0a91a.json/default/quicktype.py
@@ -44,7 +44,7 @@ def to_class(c: Type[T], x: Any) -> dict:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_list(f: Callable[[Any], T], x: Any) -> list[T]:
diff --git a/base/python/test/inputs/json/misc/16bc5.json/default/quicktype.py b/head/python/test/inputs/json/misc/16bc5.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/16bc5.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/16bc5.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/262f0.json/default/quicktype.py b/head/python/test/inputs/json/misc/262f0.json/default/quicktype.py
index 670dc71..f79cb3d 100644
--- a/base/python/test/inputs/json/misc/262f0.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/262f0.json/default/quicktype.py
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/32d5c.json/default/quicktype.py b/head/python/test/inputs/json/misc/32d5c.json/default/quicktype.py
index ca86a95..0c9c76a 100644
--- a/base/python/test/inputs/json/misc/32d5c.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/32d5c.json/default/quicktype.py
@@ -23,7 +23,7 @@ def from_str(x: Any) -> str:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_none(x: Any) -> Any:
diff --git a/base/python/test/inputs/json/misc/337ed.json/default/quicktype.py b/head/python/test/inputs/json/misc/337ed.json/default/quicktype.py
index 9af0de3..ebd6ca4 100644
--- a/base/python/test/inputs/json/misc/337ed.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/337ed.json/default/quicktype.py
@@ -15,7 +15,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_str(x: Any) -> str:
diff --git a/base/python/test/inputs/json/misc/3f1ce.json/default/quicktype.py b/head/python/test/inputs/json/misc/3f1ce.json/default/quicktype.py
index 4b297ab..97ff4b4 100644
--- a/base/python/test/inputs/json/misc/3f1ce.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/3f1ce.json/default/quicktype.py
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/4c547.json/default/quicktype.py b/head/python/test/inputs/json/misc/4c547.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/4c547.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/4c547.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/54d32.json/default/quicktype.py b/head/python/test/inputs/json/misc/54d32.json/default/quicktype.py
index bc02262..6ceef56 100644
--- a/base/python/test/inputs/json/misc/54d32.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/54d32.json/default/quicktype.py
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_str(x: Any) -> str:
diff --git a/base/python/test/inputs/json/misc/5eae5.json/default/quicktype.py b/head/python/test/inputs/json/misc/5eae5.json/default/quicktype.py
index 8a0b12b..870ad20 100644
--- a/base/python/test/inputs/json/misc/5eae5.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/5eae5.json/default/quicktype.py
@@ -8,7 +8,7 @@ T = TypeVar("T")
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_int(x: Any) -> int:
diff --git a/base/python/test/inputs/json/misc/6dec6.json/default/quicktype.py b/head/python/test/inputs/json/misc/6dec6.json/default/quicktype.py
index ea5ab3c..376cee7 100644
--- a/base/python/test/inputs/json/misc/6dec6.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/6dec6.json/default/quicktype.py
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/734ad.json/default/quicktype.py b/head/python/test/inputs/json/misc/734ad.json/default/quicktype.py
index 729f05c..8ef5e61 100644
--- a/base/python/test/inputs/json/misc/734ad.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/734ad.json/default/quicktype.py
@@ -20,7 +20,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_float(x: Any) -> float:
diff --git a/base/python/test/inputs/json/misc/77392.json/default/quicktype.py b/head/python/test/inputs/json/misc/77392.json/default/quicktype.py
index e360f77..41daa14 100644
--- a/base/python/test/inputs/json/misc/77392.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/77392.json/default/quicktype.py
@@ -15,7 +15,7 @@ def from_str(x: Any) -> str:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_none(x: Any) -> Any:
diff --git a/base/python/test/inputs/json/misc/7f568.json/default/quicktype.py b/head/python/test/inputs/json/misc/7f568.json/default/quicktype.py
index 31b9ce4..f58d1f4 100644
--- a/base/python/test/inputs/json/misc/7f568.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/7f568.json/default/quicktype.py
@@ -39,7 +39,7 @@ def to_enum(c: Type[EnumT], x: Any) -> EnumT:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_dict(f: Callable[[Any], T], x: Any) -> dict[str, T]:
diff --git a/base/python/test/inputs/json/misc/80aff.json/default/quicktype.py b/head/python/test/inputs/json/misc/80aff.json/default/quicktype.py
index 2d8124c..3f0d1d9 100644
--- a/base/python/test/inputs/json/misc/80aff.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/80aff.json/default/quicktype.py
@@ -8,7 +8,7 @@ T = TypeVar("T")
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_int(x: Any) -> int:
diff --git a/base/python/test/inputs/json/misc/88130.json/default/quicktype.py b/head/python/test/inputs/json/misc/88130.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/88130.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/88130.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/9929c.json/default/quicktype.py b/head/python/test/inputs/json/misc/9929c.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/9929c.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/9929c.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/9ac3b.json/default/quicktype.py b/head/python/test/inputs/json/misc/9ac3b.json/default/quicktype.py
index 70825e8..668c220 100644
--- a/base/python/test/inputs/json/misc/9ac3b.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/9ac3b.json/default/quicktype.py
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_str(x: Any) -> str:
diff --git a/base/python/test/inputs/json/misc/a0496.json/default/quicktype.py b/head/python/test/inputs/json/misc/a0496.json/default/quicktype.py
index 9646b63..3eb3fdc 100644
--- a/base/python/test/inputs/json/misc/a0496.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/a0496.json/default/quicktype.py
@@ -53,7 +53,7 @@ def from_bool(x: Any) -> bool:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def to_float(x: Any) -> float:
diff --git a/base/python/test/inputs/json/misc/a1eca.json/default/quicktype.py b/head/python/test/inputs/json/misc/a1eca.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/a1eca.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/a1eca.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/b4865.json/default/quicktype.py b/head/python/test/inputs/json/misc/b4865.json/default/quicktype.py
index 91e4861..c3cf5df 100644
--- a/base/python/test/inputs/json/misc/b4865.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/b4865.json/default/quicktype.py
@@ -49,7 +49,7 @@ def from_union(fs, x):
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def is_type(t: Type[T], x: Any) -> T:
diff --git a/base/python/test/inputs/json/misc/cf0d8.json/default/quicktype.py b/head/python/test/inputs/json/misc/cf0d8.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/cf0d8.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/cf0d8.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/d23d5.json/default/quicktype.py b/head/python/test/inputs/json/misc/d23d5.json/default/quicktype.py
index ff759bb..a427894 100644
--- a/base/python/test/inputs/json/misc/d23d5.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/d23d5.json/default/quicktype.py
@@ -8,7 +8,7 @@ T = TypeVar("T")
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_str(x: Any) -> str:
diff --git a/base/python/test/inputs/json/misc/dbfb3.json/default/quicktype.py b/head/python/test/inputs/json/misc/dbfb3.json/default/quicktype.py
index 4da4d7a..fad4d40 100644
--- a/base/python/test/inputs/json/misc/dbfb3.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/dbfb3.json/default/quicktype.py
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/df957.json/default/quicktype.py b/head/python/test/inputs/json/misc/df957.json/default/quicktype.py
index 8a37dff..81cd083 100644
--- a/base/python/test/inputs/json/misc/df957.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/df957.json/default/quicktype.py
@@ -36,7 +36,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/misc/e2915.json/default/quicktype.py b/head/python/test/inputs/json/misc/e2915.json/default/quicktype.py
index 7752d4c..9fe0985 100644
--- a/base/python/test/inputs/json/misc/e2915.json/default/quicktype.py
+++ b/head/python/test/inputs/json/misc/e2915.json/default/quicktype.py
@@ -43,7 +43,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 @dataclass
diff --git a/base/python/test/inputs/json/priority/bug2590.json/default/quicktype.py b/head/python/test/inputs/json/priority/bug2590.json/default/quicktype.py
index 8b179c4..1b6e1dd 100644
--- a/base/python/test/inputs/json/priority/bug2590.json/default/quicktype.py
+++ b/head/python/test/inputs/json/priority/bug2590.json/default/quicktype.py
@@ -14,7 +14,7 @@ def from_str(x: Any) -> str:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_none(x: Any) -> Any:
diff --git a/base/python/test/inputs/json/priority/bug2663.json/default/quicktype.py b/head/python/test/inputs/json/priority/bug2663.json/default/quicktype.py
index 608dc5f..f6ee8ac 100644
--- a/base/python/test/inputs/json/priority/bug2663.json/default/quicktype.py
+++ b/head/python/test/inputs/json/priority/bug2663.json/default/quicktype.py
@@ -14,7 +14,7 @@ def from_date(x: Any) -> datetime.date:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_str(x: Any) -> str:
diff --git a/base/python/test/inputs/json/priority/keywords.json/default/quicktype.py b/head/python/test/inputs/json/priority/keywords.json/default/quicktype.py
index 5f50f37..98fd35b 100644
--- a/base/python/test/inputs/json/priority/keywords.json/default/quicktype.py
+++ b/head/python/test/inputs/json/priority/keywords.json/default/quicktype.py
@@ -21,7 +21,7 @@ def to_class(c: Type[T], x: Any) -> dict:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_list(f: Callable[[Any], T], x: Any) -> list[T]:
diff --git a/base/python/test/inputs/json/samples/github-events.json/default/quicktype.py b/head/python/test/inputs/json/samples/github-events.json/default/quicktype.py
index 46828c4..a1c8751 100644
--- a/base/python/test/inputs/json/samples/github-events.json/default/quicktype.py
+++ b/head/python/test/inputs/json/samples/github-events.json/default/quicktype.py
@@ -44,7 +44,7 @@ def to_enum(c: Type[EnumT], x: Any) -> EnumT:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def to_class(c: Type[T], x: Any) -> dict:
diff --git a/base/python/test/inputs/json/samples/null-safe.json/default/quicktype.py b/head/python/test/inputs/json/samples/null-safe.json/default/quicktype.py
index 2d55a73..1fabfb6 100644
--- a/base/python/test/inputs/json/samples/null-safe.json/default/quicktype.py
+++ b/head/python/test/inputs/json/samples/null-safe.json/default/quicktype.py
@@ -27,7 +27,7 @@ def from_union(fs, x):
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_int(x: Any) -> int:
diff --git a/base/schema-python/test/inputs/schema/date-time-or-string.schema/default/quicktype.py b/head/schema-python/test/inputs/schema/date-time-or-string.schema/default/quicktype.py
index ff33799..5fae995 100644
--- a/base/schema-python/test/inputs/schema/date-time-or-string.schema/default/quicktype.py
+++ b/head/schema-python/test/inputs/schema/date-time-or-string.schema/default/quicktype.py
@@ -10,7 +10,7 @@ EnumT = TypeVar("EnumT", bound=Enum)
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_union(fs, x):
diff --git a/base/schema-python/test/inputs/schema/date-time.schema/default/quicktype.py b/head/schema-python/test/inputs/schema/date-time.schema/default/quicktype.py
index 3e734ee..8b9a43a 100644
--- a/base/schema-python/test/inputs/schema/date-time.schema/default/quicktype.py
+++ b/head/schema-python/test/inputs/schema/date-time.schema/default/quicktype.py
@@ -21,7 +21,7 @@ def from_int(x: Any) -> int:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_union(fs, x):
@@ -39,7 +39,7 @@ def from_date(x: Any) -> datetime.date:
 
 
 def from_time(x: Any) -> datetime.time:
-    assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$", x)
+    assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})?$", x)
     return dateutil.parser.parse(x).timetz()
 
 
diff --git a/base/schema-python/test/inputs/schema/optional-date-time.schema/default/quicktype.py b/head/schema-python/test/inputs/schema/optional-date-time.schema/default/quicktype.py
index 6679c21..df341f5 100644
--- a/base/schema-python/test/inputs/schema/optional-date-time.schema/default/quicktype.py
+++ b/head/schema-python/test/inputs/schema/optional-date-time.schema/default/quicktype.py
@@ -14,11 +14,11 @@ def from_date(x: Any) -> datetime.date:
 
 
 def from_datetime(x: Any) -> datetime.datetime:
-    return dateutil.parser.parse(x)
+    return dateutil.parser.isoparse(x)
 
 
 def from_time(x: Any) -> datetime.time:
-    assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$", x)
+    assert isinstance(x, str) and re.match(r"^\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}:\d{2})?$", x)
     return dateutil.parser.parse(x).timetz()
 
 
