From d00ca304848c1e257a1068e4f347ede42eb9516a Mon Sep 17 00:00:00 2001
From: beckerfy <fynn.becker@hs-hannover.de>
Date: Wed, 22 Aug 2018 14:18:45 +0200
Subject: [PATCH] Fix datetime parsing for production (python 3.5)

---
 postgrestutils/client/utils.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/postgrestutils/client/utils.py b/postgrestutils/client/utils.py
index dbe2883..6eae8d4 100644
--- a/postgrestutils/client/utils.py
+++ b/postgrestutils/client/utils.py
@@ -35,7 +35,7 @@ def clean_parts(parts):
 def datetime_parser(json_dict):
     for key, value in json_dict.items():
         if isinstance(value, str):
-            if DJANGO and False:
+            if DJANGO:
                 try:
                     parsed_dt = dateparse.parse_datetime(value)
                     if django_tz.is_naive(parsed_dt):
@@ -50,8 +50,10 @@ def datetime_parser(json_dict):
                     if parts.get('offsetsign') and parts.get('offsethours') and parts.get('offsetminutes'):
                         sign = -1 if parts.pop('offsetsign', '+') == '-' else 1
                         tz = timezone(offset=sign * timedelta(hours=int(parts.pop('offsethours')), minutes=int(parts.pop('offsetminutes'))))
-                        parsed_dt = datetime(**parts).replace(tzinfo=tz)
+                        parsed_dt = datetime(**parts).replace(tzinfo=tz).astimezone()
                     else:
-                        parsed_dt = datetime(**parts)
-                    json_dict[key] = parsed_dt.astimezone()
+                        # naive datetime so we assume local time
+                        local_tz = datetime.now(timezone.utc).astimezone().tzinfo
+                        parsed_dt = datetime(**parts).replace(tzinfo=local_tz)
+                    json_dict[key] = parsed_dt
     return json_dict
-- 
GitLab