From c19de638a1abd8a5db0e8537dfb92db5583f7fa9 Mon Sep 17 00:00:00 2001 From: Corentin Cadiou Date: Sun, 24 Nov 2019 11:21:42 +0000 Subject: [PATCH] Use pytz to figure out local timezone dynamically --- bumblebee/modules/datetime.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bumblebee/modules/datetime.py b/bumblebee/modules/datetime.py index 8899c4a..aba0e9a 100644 --- a/bumblebee/modules/datetime.py +++ b/bumblebee/modules/datetime.py @@ -15,6 +15,11 @@ from __future__ import absolute_import import datetime import locale import bumblebee.engine +import os +try: + import pytz +except ModuleNotFoundError: + pytz = None def default_format(module): default = "%x %X" @@ -41,8 +46,15 @@ class Module(bumblebee.engine.Module): locale.setlocale(locale.LC_TIME, ('en_US', 'UTF-8')) def get_time(self, widget): + if pytz: + # Get local timezone (see https://github.com/tobi-wan-kenobi/bumblebee-status/issues/468) + my_tz_name = '/'.join(os.path.realpath('/etc/localtime').split('/')[-2:]) + my_tz = pytz.timezone(my_tz_name) + else: + my_tz = None + enc = locale.getpreferredencoding() - retval = datetime.datetime.now().strftime(self._fmt) + retval = datetime.datetime.now(my_tz).strftime(self._fmt) if hasattr(retval, "decode"): return retval.decode(enc) return retval