{"id":951,"date":"2026-10-29T03:00:00","date_gmt":"2026-10-29T03:00:00","guid":{"rendered":"https:\/\/vpslake.com\/blog\/?p=951"},"modified":"2026-10-29T03:00:00","modified_gmt":"2026-10-29T03:00:00","slug":"change-timezone-rocky-linux-8","status":"publish","type":"post","link":"https:\/\/vpslake.com\/blog\/2026\/10\/29\/change-timezone-rocky-linux-8\/","title":{"rendered":"How to Change Timezone on Rocky Linux 8 (Step-by-Step)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Change timezone on Rocky Linux 8 with <code>timedatectl<\/code>, then check that Chrony is still keeping the underlying clock accurate. The update is immediate and usually takes less than five minutes over SSH, with no 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>Rocky Linux 8 installed on the VPS.<\/li>\n\n\n<li>SSH access as <code>root<\/code>, or a regular user with working <code>sudo<\/code> privileges.<\/li>\n\n\n<li>The target timezone as an IANA name, such as <code>America\/Denver<\/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> gives you the server access needed for this change.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Inspect the current clock and timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Record the existing values first so you can tell a timezone display change from a clock that is not synchronized.<\/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\">The timestamps will differ on your server. A host that currently uses UTC may return something like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>               Local time: Thu 2026-10-08 09:30:18 UTC\n           Universal time: Thu 2026-10-08 09:30:18 UTC\n                 Time zone: Etc\/UTC (UTC, +0000)\nSystem clock synchronized: yes\n              NTP service: active\nLocal: 2026-10-08 09:30:18 UTC +0000\nUTC:   2026-10-08 09:30:18 UTC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The timezone only changes how the current instant is displayed. It does not set the clock, so keep network time synchronization enabled.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Find the exact IANA timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rocky Linux 8 expects a zoneinfo identifier, not a label such as \u201cMountain Time\u201d or an abbreviation such as <code>MST<\/code>. List the installed choices and copy one exactly.<\/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\">Example results include:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>America\/Denver\nAmerica\/Los_Angeles\nAmerica\/New_York\nAsia\/Kolkata\nAustralia\/Sydney\nEurope\/London<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you need the full database, run the following and press <code>q<\/code> to leave the pager:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl list-timezones | less<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use a city-based entry because it includes that location\u2019s daylight-saving rules. Select <code>UTC<\/code> instead when logs and scheduled maintenance should use one stable offset all year.<\/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 timezone command so Rocky Linux updates the active setting and persistent <code>\/etc\/localtime<\/code> configuration together.<\/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 an exact entry from Step 2, such as <code>America\/Denver<\/code> or <code>Asia\/Kolkata<\/code>. A successful command normally prints nothing. Read back the saved name and resolved timezone file:<\/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>America\/Denver<\/code>, the result should resemble:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>America\/Denver\n\/usr\/share\/zoneinfo\/America\/Denver<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Do not edit <code>\/etc\/localtime<\/code> by hand or manually adjust the clock. The <a href=\"https:\/\/docs.redhat.com\/en\/documentation\/red_hat_enterprise_linux\/8\/html\/configuring_basic_system_settings\/assembly_changing-basic-environment-settings_configuring-basic-system-settings\" target=\"_blank\" rel=\"noopener\">RHEL 8 date and time documentation<\/a> documents the same <code>timedatectl<\/code> workflow used by Rocky Linux 8.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Confirm Chrony still synchronizes the clock<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Timezone selection and NTP synchronization are separate settings, so check Rocky Linux 8\u2019s <code>chronyd<\/code> service after changing the display zone.<\/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\">On a healthy VPS, the first two commands should return <code>enabled<\/code> and <code>active<\/code>. The tracking report should contain values similar to these:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enabled\nactive\nReference ID    : 192.0.2.40 (time.example)\nStratum         : 3\nSystem time     : 0.000018 seconds fast of NTP time\nLeap status     : Normal<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The reference server and offset will be different on your VPS. Look for an active service and <code>Leap status : Normal<\/code>; do not run another time daemon alongside Chrony. The <a href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/latest\/timedatectl.html\" target=\"_blank\" rel=\"noopener\">official <code>timedatectl<\/code> reference<\/a> lists the systemd properties used in the checks above.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the new Rocky Linux 8 timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compare the selected IANA name, synchronization state, local time, and UTC in one final check. The two 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 choosing <code>America\/Denver<\/code>, expected output will look similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Timezone=America\/Denver\nNTP=yes\nNTPSynchronized=yes\nUTC:   2026-10-08 09:35:18 UTC\nLocal: 2026-10-08 03:35:18 MDT -0600<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your timestamps will be different. The change is correct when <code>Timezone<\/code> matches the selected entry and <code>NTPSynchronized=yes<\/code>; a service that intentionally logs in UTC may still show UTC.<\/p>\n\n\n\n<aside class=\"vl-element vl-cta-banner\" aria-label=\"Set the right server time\">\n\t<div class=\"vl-cta-banner__content\">\n\t\t<p class=\"vl-cta-banner__eyebrow\">Rocky Linux VPS<\/p>\n\t\t<h3 class=\"vl-cta-banner__title\">Set the right server time<\/h3>\n\t\t<p class=\"vl-cta-banner__text\">Run Rocky Linux with root access for dependable logs, cron schedules, 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 value is not an exact entry in Rocky Linux\u2019s timezone database. Run <code>timedatectl list-timezones<\/code>, copy the complete region and city spelling, and retry. Do not use a Windows timezone name, a friendly label, or a three-letter abbreviation.<\/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 requires administrator privileges. Confirm the account with <code>sudo -v<\/code>, add <code>sudo<\/code> to the <code>set-timezone<\/code> command, or reconnect as <code>root<\/code>; changing permissions on <code>\/etc\/localtime<\/code> is not necessary.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>chronyc: command not found<\/code> or <code>chronyd<\/code> is inactive<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Chrony package may be missing or its service may have stopped. Inspect the unit 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 it from the Rocky Linux repositories and start the 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\">If tracking still has no usable source, check <code>chronyc sources -v<\/code> and confirm that outbound UDP port 123 is allowed by any provider firewall or security group.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>date<\/code> still shows UTC after the change<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">First check <code>timedatectl show --property=Timezone --value<\/code>. If it reports your selected zone, the host setting is correct; the shell may have a <code>TZ<\/code> environment variable, or the application may deliberately use UTC. Check the affected program\u2019s own timezone configuration before changing the server again.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardening and operational notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Use <code>UTC<\/code> for shared infrastructure unless a business process specifically depends on local civil time; it makes logs from different regions easier to compare.<\/li>\n\n\n<li>Review cron schedules after selecting a daylight-saving zone because a local-time job can move relative to UTC when the offset changes.<\/li>\n\n\n<li>Keep <code>chronyd<\/code> enabled and avoid manually changing a production clock with <code>date<\/code>.<\/li>\n\n\n<li>Record the chosen 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 Rocky Linux 8\u2019s actual clock?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. <code>timedatectl set-timezone<\/code> changes the way the current instant is rendered as local time, while Chrony keeps that instant aligned with network sources. Use <code>chronyc tracking<\/code> to investigate clock synchronization separately.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which timezone should I use for Denver or Salt Lake City?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use <code>America\/Denver<\/code> for both locations. It applies the Mountain Time rules, including seasonal daylight-saving changes; choose <code>UTC<\/code> if the server supports systems in several regions instead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use <code>PST<\/code>, <code>MST<\/code>, or <code>IST<\/code> as the timezone?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use a complete IANA name such as <code>America\/Denver<\/code>, <code>America\/Los_Angeles<\/code>, or <code>Asia\/Kolkata<\/code>. Abbreviations can be ambiguous and do not reliably contain the location\u2019s seasonal offset rules.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will existing services need a reboot?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. Rocky Linux changes the system timezone immediately and persists it through reboots. Restart only an application that explicitly reads the timezone once at startup and continues showing the old value.<\/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 Rocky Linux 8\u2019s actual clock?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. `timedatectl set-timezone` changes the way the current instant is rendered as local time, while Chrony keeps that instant aligned with network sources. Use `chronyc tracking` to investigate clock synchronization separately.\"}}, {\"@type\": \"Question\", \"name\": \"Which timezone should I use for Denver or Salt Lake City?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Use `America\/Denver` for both locations. It applies the Mountain Time rules, including seasonal daylight-saving changes; choose `UTC` if the server supports systems in several regions instead.\"}}, {\"@type\": \"Question\", \"name\": \"Can I use `PST`, `MST`, or `IST` as the timezone?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Use a complete IANA name such as `America\/Denver`, `America\/Los_Angeles`, or `Asia\/Kolkata`. Abbreviations can be ambiguous and do not reliably contain the location\u2019s seasonal offset rules.\"}}, {\"@type\": \"Question\", \"name\": \"Will existing services need a reboot?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Rocky Linux changes the system timezone immediately and persists it through reboots. Restart only an application that explicitly reads the timezone once at startup and continues showing the old value.\"}}]}<\/script>\n\n","protected":false},"excerpt":{"rendered":"Change timezone on Rocky Linux 8 with timedatectl, choose the right IANA zone, verify Chrony, and keep server logs on the correct local time.","protected":false},"author":1,"featured_media":952,"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":[109,105,108,107],"class_list":["post-951","post","type-post","status-publish","format-standard","has-post-thumbnail","category-guides","category-vps-hosting","tag-chrony","tag-rocky-linux-8","tag-timedatectl","tag-timezone","cs-entry"],"_links":{"self":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/951","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=951"}],"version-history":[{"count":1,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/951\/revisions"}],"predecessor-version":[{"id":3780,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/951\/revisions\/3780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media\/952"}],"wp:attachment":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media?parent=951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/categories?post=951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/tags?post=951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}