tz: fallback to Etc/Unknown when TZ is set to an invalid value

Previously, when `TZ` was set to an invalid value, Jiff would still
attempt to detect the system configured time zone. But this is arguably
not great, because it silently (aside from logs) rejects an invalid
`TZ` value. In reality, if `TZ` is set, it is likely that the user
intends for it to have an impact. So if it doesn't, we should bleat
about it.

This manifests as an error when using `TimeZone::try_system()` and
manifests as a error sentinel in the form of `Etc/Unknown` when using
`TimeZone::system()`.

We also tweak some of the logging levels. Namely, in #370, I increased
the number of TRACE-level log messages, which makes it much noisier. So
I've promoted a few things that were TRACE to DEBUG without making the
output much noisier. I guess TRACE should be reserved for variable
length things.

Fixes #364
This commit is contained in:
Andrew Gallant 2025-05-17 10:22:58 -04:00
parent e22013e9b9
commit 08abeadd09
9 changed files with 136 additions and 23 deletions

View file

@ -348,6 +348,8 @@ jobs:
toolchain: stable
- name: Build all examples
run: ./scripts/test-examples
- name: Run all test programs
run: ./scripts/test-programs
# This job builds and runs tests for Jiff's "integration" crates. That is,
# the crates that provide wrappers or traits for integrating with other