From f3e9fa28bce3e2f46c8fabab2a9d628ed67331b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Borgstr=C3=B6m?= Date: Sun, 15 Dec 2013 21:25:32 +0100 Subject: [PATCH] Fix incorrect display of time Closes #13 --- CHANGES | 1 + attic/archive.py | 4 ++-- attic/helpers.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) 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):