{"id":953,"date":"2026-10-29T09:00:00","date_gmt":"2026-10-29T09:00:00","guid":{"rendered":"https:\/\/vpslake.com\/blog\/?p=953"},"modified":"2026-10-29T09:00:00","modified_gmt":"2026-10-29T09:00:00","slug":"change-timezone-ubuntu-24-04","status":"publish","type":"post","link":"https:\/\/vpslake.com\/blog\/2026\/10\/29\/change-timezone-ubuntu-24-04\/","title":{"rendered":"How to Change Timezone on Ubuntu 24.04 (Step-by-Step)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">To change timezone on Ubuntu 24.04, choose an IANA location and apply it with <code>timedatectl<\/code>. The new local-time setting takes effect immediately, so you can update and verify a fresh VPS in about five minutes without a reboot.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Ubuntu 24.04 LTS (Noble Numbat) installed on the VPS.<\/li>\n\n\n<li>SSH access as <code>root<\/code>, or a regular account with working <code>sudo<\/code> privileges.<\/li>\n\n\n<li>The destination timezone as an IANA name, such as <code>America\/Chicago<\/code>, <code>America\/New_York<\/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 Ubuntu 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 settings<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check the existing timezone and synchronization state first so you have a clear before-and-after comparison.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl status\ndate '+Local: %F %T %Z %z'\nreadlink -f \/etc\/localtime<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The date will differ on your server, but a new VPS using UTC may show output like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>               Local time: Thu 2026-10-08 09:30:12 UTC\n           Universal time: Thu 2026-10-08 09:30:12 UTC\n                 Time zone: Etc\/UTC (UTC, +0000)\nSystem clock synchronized: yes\n              NTP service: active\nLocal: 2026-10-08 09:30:12 UTC +0000\n\/usr\/share\/zoneinfo\/Etc\/UTC<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>timedatectl<\/code> reports the system-wide setting, while <code>\/etc\/localtime<\/code> points to the zoneinfo data used by local-time calculations. Changing the timezone changes how an instant is displayed; it does not manually correct the underlying clock.<\/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\">Ubuntu expects a database identifier, not a label such as \u201cEastern Time\u201d or a short abbreviation such as <code>EST<\/code>. List the installed choices and copy the complete spelling.<\/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 results include:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>America\/Chicago\nAmerica\/Los_Angeles\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 region, narrow the result. For example, this lists common US zones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl list-timezones | grep -E '^America\/(Chicago|Denver|Los_Angeles|New_York|Phoenix)$'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use a city-based entry because it includes the location\u2019s daylight-saving rules. Select <code>UTC<\/code> when logs and scheduled maintenance should use one fixed reference rather than local civil time.<\/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 interface so Ubuntu updates the running setting and the persistent <code>\/etc\/localtime<\/code> link 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 the exact value chosen in Step 2, such as <code>America\/Chicago<\/code> or <code>Asia\/Kolkata<\/code>. A successful command normally prints nothing. Read back the stored zone and formatted local time:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl show --property=Timezone --value\ndate '+%F %T %Z %z'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For <code>America\/Chicago<\/code>, output will resemble this; the timestamp and seasonal abbreviation will vary:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>America\/Chicago\n2026-10-08 04:30:12 CDT -0500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Do not edit <code>\/etc\/localtime<\/code> by hand or change the hardware clock to force a local display. The Ubuntu <a href=\"https:\/\/manpages.ubuntu.com\/manpages\/noble\/man1\/timedatectl.1.html\" target=\"_blank\" rel=\"noopener\"><code>timedatectl<\/code> manual<\/a> documents the supported timezone operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Check Ubuntu\u2019s time synchronization<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Timezone selection and clock synchronization are separate, so confirm that Ubuntu\u2019s time service is still keeping the underlying clock accurate.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl is-active systemd-timesyncd\ntimedatectl show --property=NTP --property=NTPSynchronized<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On a fresh Ubuntu 24.04 VPS using the default synchronizer, the result should contain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>active\nNTP=yes\nNTPSynchronized=yes<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The first command checks the service; the second checks whether NTP is enabled and has synchronized successfully. If another daemon such as Chrony is already managing time, leave <code>systemd-timesyncd<\/code> alone and verify that daemon instead\u2014running two time synchronizers is counterproductive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verify the new Ubuntu 24.04 timezone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compare the selected zone with UTC. Both date lines should describe the same instant while showing the appropriate local offset.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>timedatectl show --property=Timezone --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>, expected output will look similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Timezone=America\/Chicago\nNTPSynchronized=yes\nUTC:   2026-10-08 09:35:12 UTC\nLocal: 2026-10-08 04:35:12 CDT -0500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your timestamp will be different. The setup is correct when <code>Timezone<\/code> matches the IANA name you chose and the UTC\/local lines differ only by the expected offset. A service that deliberately uses UTC can still show UTC even when the host is configured correctly.<\/p>\n\n\n\n<aside class=\"vl-element vl-cta-banner\" aria-label=\"Start with the right server time\">\n\t<div class=\"vl-cta-banner__content\">\n\t\t<p class=\"vl-cta-banner__eyebrow\">Ubuntu 24.04 VPS<\/p>\n\t\t<h3 class=\"vl-cta-banner__title\">Start with the right server time<\/h3>\n\t\t<p class=\"vl-cta-banner__text\">Deploy an Ubuntu VPS with root access for reliable 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 Ubuntu\u2019s installed timezone database. Run <code>timedatectl list-timezones<\/code>, copy the complete region and city name, and repeat the command. Do not use a Windows timezone label, spaces, or an abbreviation such as <code>PST<\/code>.<\/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 that <code>sudo -v<\/code> succeeds, 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>NTPSynchronized=no<\/code> or <code>systemd-timesyncd<\/code> is inactive<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The clock service may not be installed, enabled, or able to reach its time sources. First check whether another daemon is already in charge:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl list-units --type=service --state=running | grep -E '(chrony|timesync|ntp)'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If no time daemon is running, restore Ubuntu\u2019s default service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install -y systemd-timesyncd\nsudo timedatectl set-ntp true\nsudo systemctl enable --now systemd-timesyncd\ntimedatectl show --property=NTP --property=NTPSynchronized<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The final line should eventually report <code>NTP=yes<\/code> and <code>NTPSynchronized=yes<\/code>. If synchronization remains unavailable, inspect <code>sudo journalctl -u systemd-timesyncd -n 30 --no-pager<\/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\">The host changed, but an application still shows UTC<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Many applications intentionally log in UTC, and some read the system timezone only at startup. Confirm the host with <code>timedatectl show --property=Timezone --value<\/code>, then check the application\u2019s own timezone setting and restart only that service if its documentation requires it. Also look for a shell or service environment variable such as <code>TZ<\/code>.<\/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 infrastructure that serves several regions; it makes logs easier to correlate and avoids ambiguous daylight-saving transitions.<\/li>\n\n\n<li>Review cron entries after selecting a daylight-saving zone because a local-time schedule can move relative to UTC during the year.<\/li>\n\n\n<li>Keep exactly one time-synchronization service enabled and avoid manually changing a production clock with <code>date<\/code>.<\/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 VPS\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. NTP remains responsible for keeping that instant aligned with network time sources.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Should I use <code>America\/New_York<\/code> or <code>EST<\/code> for an East Coast server?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use <code>America\/New_York<\/code>. A full IANA name carries the region\u2019s daylight-saving rules, while <code>EST<\/code> is only an abbreviation and can produce the wrong result during part of the year.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will Ubuntu 24.04 need a reboot after the change?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. The system-wide timezone applies immediately and persists through reboots. Restart an individual application only if it cached the previous timezone when it started.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why does a cron job run at a different UTC time after the change?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cron schedules normally use the server\u2019s local timezone, so the same local hour can map to a different UTC instant when the offset changes. Use UTC-based scheduling when a job must run at one globally fixed time, and review jobs near daylight-saving transitions.<\/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 VPS\u2019s actual clock?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. `timedatectl set-timezone` changes the way the current instant is rendered as local time. NTP remains responsible for keeping that instant aligned with network time sources.\"}}, {\"@type\": \"Question\", \"name\": \"Should I use `America\/New_York` or `EST` for an East Coast server?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Use `America\/New_York`. A full IANA name carries the region\u2019s daylight-saving rules, while `EST` is only an abbreviation and can produce the wrong result during part of the year.\"}}, {\"@type\": \"Question\", \"name\": \"Will Ubuntu 24.04 need a reboot after the change?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. The system-wide timezone applies immediately and persists through reboots. Restart an individual application only if it cached the previous timezone when it started.\"}}, {\"@type\": \"Question\", \"name\": \"Why does a cron job run at a different UTC time after the change?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Cron schedules normally use the server\u2019s local timezone, so the same local hour can map to a different UTC instant when the offset changes. Use UTC-based scheduling when a job must run at one globally fixed time, and review jobs near daylight-saving transitions.\"}}]}<\/script>\n\n","protected":false},"excerpt":{"rendered":"Change timezone on Ubuntu 24.04 with timedatectl, choose a valid IANA zone, keep systemd-timesyncd healthy, and verify the result without rebooting.","protected":false},"author":1,"featured_media":954,"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":[112,108,107,102],"class_list":["post-953","post","type-post","status-publish","format-standard","has-post-thumbnail","category-guides","category-vps-hosting","tag-systemd-timesyncd","tag-timedatectl","tag-timezone","tag-ubuntu-24-04","cs-entry"],"_links":{"self":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/953","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=953"}],"version-history":[{"count":1,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/953\/revisions"}],"predecessor-version":[{"id":3785,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/posts\/953\/revisions\/3785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media\/954"}],"wp:attachment":[{"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/media?parent=953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/categories?post=953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vpslake.com\/blog\/wp-json\/wp\/v2\/tags?post=953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}