diff --git a/test/test_util.py b/test/test_util.py index 417cb77ef..1d3f2bdea 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -458,6 +458,8 @@ def test_is_weaviate_too_old(version: str, too_old: bool): ), # Test handling year 0 (should return datetime.min) ("0000-01-15T14:30:45.123456Z", datetime.min), + # Test empty string (protobuf default for unset string field) + ("", datetime.min), ], ) def test_datetime_from_weaviate_str(input_str: str, expected: datetime) -> None: diff --git a/weaviate/util.py b/weaviate/util.py index 7ee9e5566..67de55bb2 100644 --- a/weaviate/util.py +++ b/weaviate/util.py @@ -751,6 +751,8 @@ def _datetime_to_string(value: TIME) -> str: def _datetime_from_weaviate_str(string: str) -> datetime.datetime: + if not string: + return datetime.datetime.min if string[-1] != "Z": string = "".join(string.rsplit(":", 1))