{"id":941,"date":"2026-10-27T18:00:00","date_gmt":"2026-10-27T18:00:00","guid":{"rendered":"https:\/\/vpslake.com\/blog\/?p=941"},"modified":"2026-10-27T18:00:00","modified_gmt":"2026-10-27T18:00:00","slug":"change-timezone-centos-stream-10","status":"publish","type":"post","link":"https:\/\/vpslake.com\/blog\/2026\/10\/27\/change-timezone-centos-stream-10\/","title":{"rendered":"How to Change Timezone on CentOS Stream 10 (Step-by-Step)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Change timezone on CentOS Stream 10 with <code>timedatectl<\/code>, 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>CentOS Stream 10 installed and reachable over SSH.<\/li>\n\n\n<li>A <code>root<\/code> shell or a normal user with working <code>sudo<\/code> privileges.<\/li>\n\n\n<li>The destination timezone, preferably its IANA name such as <code>America\/Chicago<\/code>, <code>Europe\/London<\/code>, or <code>Asia\/Kolkata<\/code>.<\/li>\n\n\n<li>No special RAM, disk, or domain requirement; a <a href=\"https:\/\/vpslake.com\/buy-vps\">VPSLake Linux VPS<\/a> provides the server access needed for this change.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Capture the current time settings<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record the current zone and synchronization state first so you can tell a display change from an inaccurate system clock.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl status\ndate '+Local: %F %T %Z %z'\ndate -u '+UTC: %F %T %Z'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your date will differ, but a newly provisioned host may show something like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>               Local time: Thu 2026-10-08 09:20:14 UTC\n           Universal time: Thu 2026-10-08 09:20:14 UTC\n                 Time zone: Etc\/UTC (UTC, +0000)\nSystem clock synchronized: yes\n              NTP service: active\nLocal: 2026-10-08 09:20:14 UTC +0000\nUTC: 2026-10-08 09:20:14 UTC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The timezone changes how the current instant is formatted. It does not set the clock, so keep network synchronization enabled.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Select an installed IANA timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CentOS Stream expects an exact zoneinfo identifier rather than a label such as \u201cCentral Time\u201d or \u201cIndia time.\u201d Filter the installed list to find the correct region and city.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl list-timezones | grep -E '^(America|Asia|Australia|Europe)\/'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Typical entries include:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>America\/Chicago\nAmerica\/Denver\nAmerica\/New_York\nAsia\/Kolkata\nAsia\/Singapore\nEurope\/London<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you already know the likely city, narrow the result:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl list-timezones | grep -E 'America\/(Chicago|Denver|New_York)$'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the full database, run <code>timedatectl list-timezones | less<\/code> and press <code>q<\/code> when finished. Prefer a city-based identifier because it includes the applicable daylight-saving rules; use <code>UTC<\/code> when you want logs and scheduled work to follow one stable reference.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Apply the new timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use systemd\u2019s time-management interface so the active setting and persistent <code>\/etc\/localtime<\/code> configuration stay aligned.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo timedatectl set-timezone YOUR_REGION\/YOUR_CITY<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Replace <code>YOUR_REGION\/YOUR_CITY<\/code> with the complete entry from Step 2, such as <code>America\/Chicago<\/code> or <code>Asia\/Kolkata<\/code>. A successful command normally prints no output. Read the stored value and its zoneinfo target:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl show --property=Timezone --value\nreadlink -f \/etc\/localtime<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For <code>Asia\/Kolkata<\/code>, the result should resemble:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Asia\/Kolkata\n\/usr\/share\/zoneinfo\/Asia\/Kolkata<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This changes local-time display without manually changing the clock or editing <code>\/etc\/localtime<\/code>. See the official <a href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/latest\/timedatectl.html\" target=\"_blank\" rel=\"noopener\"><code>timedatectl<\/code> documentation<\/a> for the supported properties and operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Check Chrony separately<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CentOS Stream 10 uses <code>chronyd<\/code> 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.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl is-enabled chronyd\nsystemctl is-active chronyd\nchronyc tracking<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A healthy machine should report <code>enabled<\/code>, <code>active<\/code>, and a tracking report containing values similar to these:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enabled\nactive\nReference ID    : 192.0.2.20 (time.example)\nStratum         : 3\nSystem time     : 0.000014 seconds fast of NTP time\nLeap status     : Normal<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The reference address and offset vary. Look for an enabled, active service and <code>Leap status : Normal<\/code>. The <a href=\"https:\/\/docs.redhat.com\/en\/documentation\/red_hat_enterprise_linux\/10\/html\/configuring_time_synchronization\/using-chrony\" target=\"_blank\" rel=\"noopener\">official RHEL 10 Chrony documentation<\/a> explains the same <code>chronyd<\/code> and <code>chronyc<\/code> checks used on this RHEL-compatible release.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the CentOS Stream 10 timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl show --property=Timezone --property=NTP --property=NTPSynchronized\ndate -u '+UTC:   %F %T %Z'\ndate '+Local: %F %T %Z %z'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After selecting <code>America\/Chicago<\/code>, the important output will look similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Timezone=America\/Chicago\nNTP=yes\nNTPSynchronized=yes\nUTC:   2026-10-08 14:20:40 UTC\nLocal: 2026-10-08 09:20:40 CDT -0500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If <code>Timezone<\/code> matches your chosen identifier and <code>NTPSynchronized=yes<\/code>, 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.<\/p>\n\n\n\n<aside class=\"vl-element vl-cta-banner\" aria-label=\"Start with a Linux VPS\">\n\t<div class=\"vl-cta-banner__content\">\n\t\t<p class=\"vl-cta-banner__eyebrow\">CentOS Stream VPS<\/p>\n\t\t<h3 class=\"vl-cta-banner__title\">Start with a Linux VPS<\/h3>\n\t\t<p class=\"vl-cta-banner__text\">Configure CentOS Stream 10 with root access for dependable logs, cron jobs, and application timestamps.<\/p>\n\t<\/div>\n\t<a class=\"vl-cta-banner__button\" href=\"\/buy-vps\" aria-label=\"View Linux VPS plans\">View Linux VPS plans<\/a>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>Failed to set time zone: Invalid or unknown time zone<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The argument is not an exact entry in the installed timezone database. Run <code>timedatectl list-timezones<\/code>, copy the complete capitalization and underscore spelling, and retry. Do not use a three-letter abbreviation, a Windows timezone label, or spaces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>sudo: timedatectl: command not found<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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 <code>ps -p 1 -o comm=<\/code>; if it is not, change the timezone through the container or image runtime instead of modifying the host blindly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>Authentication is required<\/code> or <code>Access denied<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Changing the system-wide timezone is an administrative operation. Test the account with <code>sudo -v<\/code>, add <code>sudo<\/code> to the command, or reconnect as <code>root<\/code>; changing permissions on <code>\/etc\/localtime<\/code> is neither necessary nor safe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>chronyc tracking<\/code> cannot connect<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Chrony package may be missing or <code>chronyd<\/code> may be stopped. Inspect the service and recent messages first:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status chronyd --no-pager\njournalctl -u chronyd -n 30 --no-pager<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the package is absent, install and start the CentOS Stream service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install -y chrony\nsudo systemctl enable --now chronyd\nchronyc tracking<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Operational notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Use <code>UTC<\/code> for infrastructure serving multiple regions unless a business process specifically needs local civil time.<\/li>\n\n\n<li>Review cron schedules after switching to a daylight-saving zone; a local-time job can move relative to UTC when the offset changes.<\/li>\n\n\n<li>Keep <code>chronyd<\/code> enabled and do not use <code>date<\/code> to manually alter a production clock.<\/li>\n\n\n<li>Record the selected IANA identifier in your provisioning notes so a rebuild uses the same convention.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does changing the timezone change the server\u2019s actual clock?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. <code>timedatectl set-timezone<\/code> changes the representation of the current instant, while Chrony keeps that instant aligned with network time. Check <code>chronyc tracking<\/code> when you need to investigate clock accuracy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use <code>PST<\/code> or <code>IST<\/code> instead of a city name?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use a full IANA name such as <code>America\/Los_Angeles<\/code> or <code>Asia\/Kolkata<\/code>. Abbreviations can be ambiguous and do not consistently carry daylight-saving rules.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will CentOS Stream 10 need a reboot?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. The system-wide setting applies immediately and persists across reboots through <code>\/etc\/localtime<\/code>. Restart only an application that explicitly caches its timezone during startup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why do some logs remain in UTC?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Many services deliberately log in UTC so events from different regions are easy to correlate. Check the service\u2019s own timezone or logging configuration before changing the host zone again.<\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Does changing the timezone change the server\u2019s actual clock?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"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.\"}}, {\"@type\": \"Question\", \"name\": \"Can I use `PST` or `IST` instead of a city name?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"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.\"}}, {\"@type\": \"Question\", \"name\": \"Will CentOS Stream 10 need a reboot?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"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.\"}}, {\"@type\": \"Question\", \"name\": \"Why do some logs remain in UTC?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Many services deliberately log in UTC so events from different regions are easy to correlate. Check the service\u2019s own timezone or logging configuration before changing the host zone again.\"}}]}<\/script>\n\n","protected":false},"excerpt":{"rendered":"Change timezone on CentOS Stream 10 with timedatectl, select an IANA zone, keep chrony synchronized, and verify the result without rebooting.","protected":false},"author":1,"featured_media":942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[5,9],"tags":[110,109,108,107],"class_list":["post-941","post","type-post","status-publish","format-standard","has-post-thumbnail","category-guides","category-vps-hosting","tag-centos-stream-10","tag-chrony","tag-timedatectl","tag-timezone","cs-entry"],"_links":{"self":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/comments?post=941"}],"version-history":[{"count":1,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/941\/revisions"}],"predecessor-version":[{"id":3761,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/941\/revisions\/3761"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media\/942"}],"wp:attachment":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media?parent=941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/categories?post=941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/tags?post=941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}