From f30caa61ad6ccea5cc6ce4ad7f1eb2f732e5d0b2 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Fri, 30 Apr 2021 12:03:56 +0000 Subject: [PATCH] #225: Add timezone info to datetimes on DB backend --- datagateway_api/common/database/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/datagateway_api/common/database/models.py b/datagateway_api/common/database/models.py index d0796c95..1fe208a3 100644 --- a/datagateway_api/common/database/models.py +++ b/datagateway_api/common/database/models.py @@ -3,6 +3,7 @@ from decimal import Decimal import enum +from dateutil.tz import tzlocal from sqlalchemy import ( BigInteger, Boolean, @@ -20,6 +21,7 @@ from sqlalchemy.orm import relationship from sqlalchemy.orm.collections import InstrumentedList +from datagateway_api.common.date_handler import DateHandler from datagateway_api.common.exceptions import DatabaseError, FilterError Base = declarative_base() @@ -78,7 +80,9 @@ def _make_serializable(self, field): :return: The converted field """ if isinstance(field, datetime): - return str(field) + # Add timezone info to match ICAT backend + field = field.replace(tzinfo=tzlocal()) + return DateHandler.datetime_object_to_str(field) elif isinstance(field, Decimal): return float(field) else: