diff --git a/CHANGES b/CHANGES index 59cf5d40f..ff1019d37 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ Version 0.9 (feature release, released on X) +- Fix incorrect display of time (#13) - Improved error handling / reporting. (#12) - Use fcntl() instead of flock() when locking repository/cache. (#15) - Let ssh figure out port/user if not specified so we don't override .ssh/config (#9) diff --git a/attic/archive.py b/attic/archive.py index 4526fe099..fac656cc1 100644 --- a/attic/archive.py +++ b/attic/archive.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from getpass import getuser from itertools import zip_longest import msgpack @@ -122,7 +122,7 @@ class Archive(object): def ts(self): """Timestamp of archive creation in UTC""" t, f = self.metadata[b'time'].split('.', 1) - return datetime.strptime(t, '%Y-%m-%dT%H:%M:%S') + timedelta(seconds=float('.' + f)) + return datetime.strptime(t, '%Y-%m-%dT%H:%M:%S').replace(tzinfo=timezone.utc) + timedelta(seconds=float('.' + f)) def __repr__(self): return 'Archive(%r)' % self.name diff --git a/attic/helpers.py b/attic/helpers.py index 275714054..fb1fe3e69 100644 --- a/attic/helpers.py +++ b/attic/helpers.py @@ -8,7 +8,7 @@ import re import stat import sys import time -from datetime import datetime, timedelta +from datetime import datetime from fnmatch import fnmatchcase from operator import attrgetter import fcntl @@ -138,7 +138,7 @@ def get_cache_dir(): def to_localtime(ts): """Convert datetime object from UTC to local time zone""" - return ts - timedelta(seconds=time.altzone) + return datetime(*time.localtime(ts.timestamp())[:6]) def adjust_patterns(paths, excludes):