diff --git a/staffeln/conductor/backup.py b/staffeln/conductor/backup.py
index e34d681..f3deff4 100755
--- a/staffeln/conductor/backup.py
+++ b/staffeln/conductor/backup.py
@@ -1,5 +1,5 @@
 import collections
-from datetime import timedelta
+from datetime import timedelta, timezone
 
 import staffeln.conf
 from openstack.exceptions import HttpException as OpenstackHttpException
@@ -245,8 +245,8 @@
             if backup is None:
                 LOG.info(
                     _(
-                        "Backup %s is not existing in Openstack."
-                        "Or cinder-backup is not existing in the cloud."
+                        "Backup %s is not existing in Openstack "
+                        "or cinder-backup is not existing in the cloud."
                         % backup_object.backup_id
                     )
                 )
@@ -354,7 +354,7 @@
             backups = self.get_backups(
                 filters={
                     "volume_id__eq": volume_id,
-                    "created_at__gt": threshold_strtime.astimezone(),
+                    "created_at__gt": threshold_strtime.astimezone(timezone.utc),
                 }
             )
             if backups:
diff --git a/staffeln/conductor/manager.py b/staffeln/conductor/manager.py
index 34f1af3..9720650 100755
--- a/staffeln/conductor/manager.py
+++ b/staffeln/conductor/manager.py
@@ -1,6 +1,6 @@
 import threading
 import time
-from datetime import timedelta
+from datetime import timedelta, timezone
 
 import cotyledon
 import staffeln.conf
@@ -133,7 +133,7 @@
         report_period = CONF.conductor.report_period
         threshold_strtime = timeutils.utcnow() - timedelta(seconds=report_period)
 
-        filters = {"created_at__gt": threshold_strtime.astimezone()}
+        filters = {"created_at__gt": threshold_strtime.astimezone(timezone.utc)}
         report_tss = objects.ReportTimestamp.list(  # pylint: disable=E1120
             context=self.ctx, filters=filters
         )
@@ -145,7 +145,7 @@
 
             # Purge records that live longer than 10 report cycles
             threshold_strtime = timeutils.utcnow() - timedelta(seconds=report_period*10)
-            filters = {"created_at__lt": threshold_strtime.astimezone()}
+            filters = {"created_at__lt": threshold_strtime.astimezone(timezone.utc)}
             old_report_tss = objects.ReportTimestamp.list(  # pylint: disable=E1120
                 context=self.ctx, filters=filters
             )
@@ -213,8 +213,8 @@
             self.controller.hard_remove_volume_backup(retention_backup)
 
     def is_retention(self, backup):
-        now = timeutils.utcnow()
-        backup_age = now - backup.created_at
+        now = timeutils.utcnow().astimezone(timezone.utc)
+        backup_age = now - backup.created_at.astimezone(timezone.utc)
         # see if need to be delete.
         if backup.instance_id in self.instance_retention_map:
             retention_time = now - self.get_time_from_str(
@@ -240,7 +240,7 @@
                     # get the threshold time
                     self.threshold_strtime = self.get_time_from_str(
                         CONF.conductor.retention_time
-                    )
+                    ).astimezone(timezone.utc)
                     self.instance_retention_map = (
                         self.controller.collect_instance_retention_map()
                     )
