From 33f8f1e8a28a20a24bddccdcf1cf0adfe2bd9f06 Mon Sep 17 00:00:00 2001 From: Ben Hodgkiss Date: Thu, 28 May 2026 11:13:34 +0100 Subject: [PATCH 1/3] Update timestamp length validation in date.py --- digital_land/datatype/date.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/digital_land/datatype/date.py b/digital_land/datatype/date.py index f5758ca5..0e175026 100644 --- a/digital_land/datatype/date.py +++ b/digital_land/datatype/date.py @@ -80,11 +80,11 @@ def normalise(self, fieldvalue, issues=None): continue int_part = value.split(".", 1)[0].lstrip("+-") - if len(int_part) not in (9, 10, 12, 13): + if len(int_part) not in (9, 10, 11, 12, 13): continue timestamp = float(value) - if len(int_part) == 13 or len(int_part) == 12: + if len(int_part) in (11, 12, 13): timestamp /= 1000.0 date = datetime.utcfromtimestamp(timestamp) break From e3554903bb51cf11d9770626df416d4ce771bade Mon Sep 17 00:00:00 2001 From: Ben Hodgkiss Date: Thu, 28 May 2026 11:16:33 +0100 Subject: [PATCH 2/3] Update test_date.py --- tests/unit/datatype/test_date.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/unit/datatype/test_date.py b/tests/unit/datatype/test_date.py index 42eef170..fea706af 100644 --- a/tests/unit/datatype/test_date.py +++ b/tests/unit/datatype/test_date.py @@ -55,6 +55,11 @@ class TestDateDataType: ("946684800", "2000-01-01"), ("1715123456", "2024-05-07"), ("171512345678", "1975-06-09"), + # 11-digit millisecond timestamps + ("13392000000", "1970-06-04"), + ("-49507200000", "1968-06-01"), + ("10000000000", "1970-04-26"), + ("99999999999", "1973-03-03"), # years ("2020", "2020-01-01"), ("2020.0", "2020-01-01"), From e9e506115a4ca5ff36390a55b32e2c1bdb3b6e76 Mon Sep 17 00:00:00 2001 From: Ben Hodgkiss Date: Thu, 28 May 2026 11:20:34 +0100 Subject: [PATCH 3/3] Fix tests --- tests/unit/datatype/test_date.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/datatype/test_date.py b/tests/unit/datatype/test_date.py index fea706af..abc49fa4 100644 --- a/tests/unit/datatype/test_date.py +++ b/tests/unit/datatype/test_date.py @@ -56,8 +56,8 @@ class TestDateDataType: ("1715123456", "2024-05-07"), ("171512345678", "1975-06-09"), # 11-digit millisecond timestamps - ("13392000000", "1970-06-04"), - ("-49507200000", "1968-06-01"), + ("13392000000", "1970-06-05"), + ("-49507200000", "1968-06-07"), ("10000000000", "1970-04-26"), ("99999999999", "1973-03-03"), # years