From 830cfb37d1435f2a86ff1744f7bd1530d81e5ced Mon Sep 17 00:00:00 2001 From: Manuel Ebert Date: Mon, 16 Sep 2013 10:45:57 -0700 Subject: [PATCH] Fixes #93 --- jrnl/util.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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