From 8b8296e87b09026c849349f8073a04a2873c16b1 Mon Sep 17 00:00:00 2001 From: ljf Date: Mon, 10 Dec 2018 01:17:04 +0100 Subject: [PATCH] [fix] Better way to calculate locale timezone --- moulinette/interfaces/cli.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/moulinette/interfaces/cli.py b/moulinette/interfaces/cli.py index edff5346..ce5efae0 100644 --- a/moulinette/interfaces/cli.py +++ b/moulinette/interfaces/cli.py @@ -103,13 +103,19 @@ def pretty_date(_date): Argument: - date -- The date or datetime to display """ + # Deduce system timezone + nowutc = datetime.now(tz=pytz.utc) + nowtz = datetime.now() + nowtz = nowtz.replace(tzinfo=pytz.utc) + offsetHour = nowutc - nowtz + offsetHour = int(round(offsetHour.total_seconds() / 3600)) + localtz = 'Etc/GMT%+d' % offsetHour + + # Transform naive date into UTC date if _date.tzinfo is None: _date = _date.replace(tzinfo=pytz.utc) - if time.daylight: - offsetHour = time.altzone / 3600 - else: - offsetHour = time.timezone / 3600 - localtz = 'Etc/GMT%+d' % offsetHour + + # Convert UTC date into system locale date _date = _date.astimezone(pytz.timezone(localtz)) if isinstance(_date, datetime): return _date.strftime("%Y-%m-%d %H:%M:%S")