A containerized app can revert to UTC after an update when the new image drops timezone data, ignores TZ, or no longer uses the host timezone mount.
The host clock can remain correct while the application formats dates in UTC because containers normally share the host kernel clock but carry their own timezone files, environment, and language runtime data. An image update may switch base distributions, remove tzdata, change the application user, replace the entrypoint, or stop honoring a vendor-specific TZ variable. Compare the old and new image before changing the host timezone.
Separate System Clock Time From Timezone Formatting
Record UTC time, local formatted time, timezone name, numeric offset, and the applicationโs own displayed time inside the old and new containers.
The GNU C Library explains that the TZ variable controls local-time conversion, while the underlying system clock remains an absolute time source.
If epoch time matches but the formatted zone changes, the problem is timezone configuration rather than clock drift or NTP.
Check Whether the New Image Still Contains tzdata
Compare installed packages, /usr/share/zoneinfo, /etc/localtime, and /etc/timezone between the previous and current image tags.
Debianโs tzdata package supplies timezone definitions used by applications to convert UTC into regional local time.
A minimal replacement image may intentionally omit this package. Install it in a derived image or use the applicationโs supported timezone mechanism instead of modifying a running container by hand.
Verify How the Base Distribution Applies TZ
Identify whether the image is Debian, Ubuntu, Alpine, distroless, or another base. Do not assume that setting TZ has identical effects in every image.
Alpine Linux documents timezone setup through tzdata and zoneinfo.
If the update changed the base image, repeat the timezone setup using that distributionโs supported method. Copying one file from the old container can leave daylight-saving rules stale.
Inspect the Host localtime Bind Mount
Compare the running containerโs mounts before and after recreation. Check whether /etc/localtime or a zoneinfo file is still mounted read-only.
Docker bind mounts map an exact host file or directory into the container. The official bind-mount guidance shows why a removed Compose mount or changed source path makes the new container fall back to its image default.
Do not mount the hostโs entire /etc directory. Use the narrow supported file or explicit timezone configuration required by the application.
Check the Application Runtimeโs Own Zone Database
Identify whether the application uses the operating-system zoneinfo database or bundles timezone data inside Python, Java, PHP, Node.js, or another runtime.
Pythonโs zoneinfo module searches system data or a tzdata package.
An application can therefore display UTC even when shell commands show the correct zone. Compare application runtime behavior separately from the container shell.
Verify Compose Environment Precedence After Recreation
Inspect the final environment of the recreated container and compare it with Compose interpolation, environment, env_file, and image defaults.
Red Hatโs container documentation notes that runtime configuration can override image environment, so an updated image and an old deployment file can produce a different final value than expected.
Read the actual container environment rather than only the Compose file. A stale stack UI or alternate env file may have recreated the service without the intended timezone variable.
Pin the Configuration and Test Across Another Update
Choose one supported timezone method, pin it in version-controlled deployment configuration, recreate the container, and verify winter and daylight-saving dates where applicable.
The ZimaSpace article on container job time and environment provides the adjacent diagnostic boundary for schedules that shift when container time settings change.
The issue is resolved when the application, shell, logs, and scheduled jobs use the intended zone after restart and another controlled image recreation.
Frequently Asked Questions
Do containers have their own hardware clock?
No. They normally share the host kernel clock, but they can format that time using different timezone data and environment settings.
Is setting TZ always enough?
No. The image and application must support the variable and have access to timezone rules. Some runtimes use a separate bundled database.
Should I change the NAS host timezone to fix one container?
No. First correct the container or application configuration; changing the host can affect logs, schedules, and every other service.
Support & Tips
More to Read

Live TV Recording Storage Guide for Capacity, Retention, and Cleanup
Measure real recordings, reserve headroom, combine age and capacity limits, and prove the oldest eligible program is removed before storage fills.

Home Media Metadata Recovery Workflow After a Database Restore
Protect the restored state, verify media identity and paths, then repair missing artwork or matches in a pilot library before broad metadata changes.

Jellyfin Client Compatibility Checklist for Audio, Video, and Subtitles
Test representative files one variable at a time and record Direct Play, remux, audio conversion, video transcode, or failure for every client.

