diff --git a/jrnl/util.py b/jrnl/util.py index 28499933..4fc2575b 100644 --- a/jrnl/util.py +++ b/jrnl/util.py @@ -4,6 +4,7 @@ import sys import os from tzlocal import get_localzone import getpass as gp +import pytz PY3 = sys.version_info[0] == 3 PY2 = sys.version_info[0] == 2 @@ -41,6 +42,13 @@ def get_local_timezone(): global __cached_tz if not __cached_tz and "darwin" in sys.platform: __cached_tz = os.popen("systemsetup -gettimezone").read().replace("Time Zone: ", "").strip() - elif not __cached_tz: + if not __cached_tz or __cached_tz not in pytz.all_timezones_set: + link = os.readlink("/etc/localtime") + # This is something like /usr/share/zoneinfo/America/Los_Angeles. + # Find second / from right and take the substring + __cached_tz = link[link.rfind('/', 0, link.rfind('/'))+1:] + if not __cached_tz or __cached_tz not in pytz.all_timezones_set: __cached_tz = str(get_localzone()) + if not __cached_tz or __cached_tz not in pytz.all_timezones_set: + __cached_tz = "UTC" return __cached_tz