From 312eaf474736084904fa25f144e773e9f932e991 Mon Sep 17 00:00:00 2001 From: Art Lukyanchyk <artiom.lukyanchyk@hs-hannover.de> Date: Wed, 22 Aug 2018 17:04:52 +0200 Subject: [PATCH] Make datetime_to_str work on Python 3.5 --- pikatasks/serialization.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pikatasks/serialization.py b/pikatasks/serialization.py index d73c3c0..e796f57 100644 --- a/pikatasks/serialization.py +++ b/pikatasks/serialization.py @@ -1,3 +1,4 @@ +import sys import json import datetime import collections @@ -21,6 +22,13 @@ def datetime_to_str(dt): """ if not dt.tzinfo: logger.warning("Naive datetime received by serialize_datetime() and will be treated as local: {dt}. Avoid using naive datetime objects.".format(dt=dt)) + if sys.version_info < (3, 3): + raise RuntimeError("Cannot consume naive datetime in python < 3.3") + elif sys.version_info < (3, 6): + local_tzinfo = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo + dt = dt.replace(tzinfo=local_tzinfo) + else: + pass # python 3.6+ allows .astimezone() on naive objects utc_dt = dt.astimezone(datetime.timezone.utc) return datetime.datetime.strftime(utc_dt, settings.DATETIME_FORMAT) -- GitLab