diff --git a/pikatasks/serialization.py b/pikatasks/serialization.py
index d73c3c0949323e720b34c349a2854b2bdbaaa0e0..e796f572fdef77688ec26f02f4a626190852e572 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)