diff --git a/src/output/table.rs b/src/output/table.rs index 50c7de7..f0172e6 100644 --- a/src/output/table.rs +++ b/src/output/table.rs @@ -292,9 +292,21 @@ impl Environment { fn determine_time_zone() -> TZResult { if let Ok(file) = env::var("TZ") { - TimeZone::from_file(format!("/usr/share/zoneinfo/{}", file)) - } - else { + TimeZone::from_file({ + if file.starts_with("/") { + file + } else { + format!("/usr/share/zoneinfo/{}", { + if file.starts_with(":") { + // Unwrap is panic-free here because we've checked if file starts with colon + file.strip_prefix(":").unwrap() + } else { + file.as_str() + } + }) + } + }) + } else { TimeZone::from_file("/etc/localtime") } }