From 2b4509b6b65eea4ed42425496b7dbeecca2b2c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20D=C3=B6rfelt?= Date: Sat, 31 Aug 2024 15:32:38 +0200 Subject: [PATCH] fix timestamps --- joppy/data_types.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/joppy/data_types.py b/joppy/data_types.py index 10416e8..06e714f 100644 --- a/joppy/data_types.py +++ b/joppy/data_types.py @@ -99,16 +99,21 @@ def __post_init__(self) -> None: # Exclude integer and empty string IDs. if value and isinstance(value, str) and not is_id_valid(value): raise ValueError("Invalid ID:", value) - elif field_.name.endswith("_time") or field_.name in ( - "todo_due", - "todo_completed", + elif ( + field_.name.endswith("_time") + or field_.name.endswith("Time") + or field_.name + in ( + "todo_due", + "todo_completed", + ) ): try: value_int = int(value) casted_value = ( None if value_int == 0 - else datetime.fromtimestamp(value_int / 1000.0) + else datetime.utcfromtimestamp(value_int / 1000.0) ) setattr(self, field_.name, casted_value) except ValueError: