Change timezone on CentOS Stream 10 with timedatectl, then confirm that the system is still synchronized with network time. The update is immediate and usually takes less than five minutes, with no server reboot required.
Prerequisites
- CentOS Stream 10 installed and reachable over SSH.
- A
rootshell or a normal user with workingsudoprivileges. - The destination timezone, preferably its IANA name such as
America/Chicago,Europe/London, orAsia/Kolkata. - No special RAM, disk, or domain requirement; a VPSLake Linux VPS provides the server access needed for this change.
Step 1: Capture the current time settings
Record the current zone and synchronization state first so you can tell a display change from an inaccurate system clock.
timedatectl status
date '+Local: %F %T %Z %z'
date -u '+UTC: %F %T %Z'
Your date will differ, but a newly provisioned host may show something like this:
Local time: Thu 2026-10-08 09:20:14 UTC
Universal time: Thu 2026-10-08 09:20:14 UTC
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
Local: 2026-10-08 09:20:14 UTC +0000
UTC: 2026-10-08 09:20:14 UTC
The timezone changes how the current instant is formatted. It does not set the clock, so keep network synchronization enabled.
Step 2: Select an installed IANA timezone
CentOS Stream expects an exact zoneinfo identifier rather than a label such as “Central Time” or “India time.” Filter the installed list to find the correct region and city.
timedatectl list-timezones | grep -E '^(America|Asia|Australia|Europe)/'
Typical entries include:
America/Chicago
America/Denver
America/New_York
Asia/Kolkata
Asia/Singapore
Europe/London
If you already know the likely city, narrow the result:
timedatectl list-timezones | grep -E 'America/(Chicago|Denver|New_York)$'
For the full database, run timedatectl list-timezones | less and press q when finished. Prefer a city-based identifier because it includes the applicable daylight-saving rules; use UTC when you want logs and scheduled work to follow one stable reference.
Step 3: Apply the new timezone
Use systemd’s time-management interface so the active setting and persistent /etc/localtime configuration stay aligned.
sudo timedatectl set-timezone YOUR_REGION/YOUR_CITY
Replace YOUR_REGION/YOUR_CITY with the complete entry from Step 2, such as America/Chicago or Asia/Kolkata. A successful command normally prints no output. Read the stored value and its zoneinfo target:
timedatectl show --property=Timezone --value
readlink -f /etc/localtime
For Asia/Kolkata, the result should resemble:
Asia/Kolkata
/usr/share/zoneinfo/Asia/Kolkata
This changes local-time display without manually changing the clock or editing /etc/localtime. See the official timedatectl documentation for the supported properties and operations.
Step 4: Check Chrony separately
CentOS Stream 10 uses chronyd for network time synchronization, while the timezone controls presentation. Check the service and tracking data so a correct offset is not mistaken for a synchronized clock.
systemctl is-enabled chronyd
systemctl is-active chronyd
chronyc tracking
A healthy machine should report enabled, active, and a tracking report containing values similar to these:
enabled
active
Reference ID : 192.0.2.20 (time.example)
Stratum : 3
System time : 0.000014 seconds fast of NTP time
Leap status : Normal
The reference address and offset vary. Look for an enabled, active service and Leap status : Normal. The official RHEL 10 Chrony documentation explains the same chronyd and chronyc checks used on this RHEL-compatible release.
Verify the CentOS Stream 10 timezone
Compare local time with UTC and ask systemd for the exact zone and synchronization flags. Both date lines should represent the same instant with different offsets.
timedatectl show --property=Timezone --property=NTP --property=NTPSynchronized
date -u '+UTC: %F %T %Z'
date '+Local: %F %T %Z %z'
After selecting America/Chicago, the important output will look similar to this:
Timezone=America/Chicago
NTP=yes
NTPSynchronized=yes
UTC: 2026-10-08 14:20:40 UTC
Local: 2026-10-08 09:20:40 CDT -0500
If Timezone matches your chosen identifier and NTPSynchronized=yes, the operating system is configured correctly. Applications that intentionally use UTC may still display UTC; that is an application setting, not evidence that the host change failed.
Troubleshooting
Failed to set time zone: Invalid or unknown time zone
The argument is not an exact entry in the installed timezone database. Run timedatectl list-timezones, copy the complete capitalization and underscore spelling, and retry. Do not use a three-letter abbreviation, a Windows timezone label, or spaces.
sudo: timedatectl: command not found
This usually means the command is being run inside a minimal container or a restricted environment rather than a normal CentOS Stream 10 VPS. On a full host, confirm that systemd is PID 1 with ps -p 1 -o comm=; if it is not, change the timezone through the container or image runtime instead of modifying the host blindly.
Authentication is required or Access denied
Changing the system-wide timezone is an administrative operation. Test the account with sudo -v, add sudo to the command, or reconnect as root; changing permissions on /etc/localtime is neither necessary nor safe.
chronyc tracking cannot connect
The Chrony package may be missing or chronyd may be stopped. Inspect the service and recent messages first:
systemctl status chronyd --no-pager
journalctl -u chronyd -n 30 --no-pager
If the package is absent, install and start the CentOS Stream service:
sudo dnf install -y chrony
sudo systemctl enable --now chronyd
chronyc tracking
The VPS also needs outbound UDP port 123 through any provider firewall or security group. Do not run a second time-sync daemon alongside Chrony.
Operational notes
- Use
UTCfor infrastructure serving multiple regions unless a business process specifically needs local civil time. - Review cron schedules after switching to a daylight-saving zone; a local-time job can move relative to UTC when the offset changes.
- Keep
chronydenabled and do not usedateto manually alter a production clock. - Record the selected IANA identifier in your provisioning notes so a rebuild uses the same convention.
FAQ
Does changing the timezone change the server’s actual clock?
No. timedatectl set-timezone changes the representation of the current instant, while Chrony keeps that instant aligned with network time. Check chronyc tracking when you need to investigate clock accuracy.
Can I use PST or IST instead of a city name?
Use a full IANA name such as America/Los_Angeles or Asia/Kolkata. Abbreviations can be ambiguous and do not consistently carry daylight-saving rules.
Will CentOS Stream 10 need a reboot?
No. The system-wide setting applies immediately and persists across reboots through /etc/localtime. Restart only an application that explicitly caches its timezone during startup.
Why do some logs remain in UTC?
Many services deliberately log in UTC so events from different regions are easy to correlate. Check the service’s own timezone or logging configuration before changing the host zone again.