diff options
Diffstat (limited to 'src/output/details.rs')
-rw-r--r-- | src/output/details.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/output/details.rs b/src/output/details.rs index a6ff7da..cea6bc4 100644 --- a/src/output/details.rs +++ b/src/output/details.rs @@ -82,6 +82,7 @@ use ansi_term::Style; use datetime::fmt::DateFormat; use datetime::{LocalDateTime, DatePiece}; use datetime::TimeZone; +use zoneinfo_compiled::CompiledData; use zoneinfo_data::ZoneinfoData; use locale; @@ -168,12 +169,21 @@ impl Default for Environment<UsersCache> { current_year: LocalDateTime::now().year(), numeric: locale::Numeric::load_user_locale().unwrap_or_else(|_| locale::Numeric::english()), time: locale::Time::load_user_locale().unwrap_or_else(|_| locale::Time::english()), - tz: TimeZone::system().expect("Unable to determine time zone"), + tz: determine_time_zone().expect("Unable to determine time zone"), users: Mutex::new(UsersCache::new()), } } } +fn determine_time_zone() -> Result<TimeZone> { + if let Some(system_zone) = TimeZone::system() { + Ok(system_zone) + } + else { + TimeZone::from_file("/etc/localtime") + } +} + impl Details { /// Print the details of the given vector of files -- all of which will |