Cybersecurity Updates & Tools

Change Timezone on Ubuntu: timedatectl and Desktop GUI Guide

The correct timezone affects more than the clock on your screen. It drives cron job scheduling, systemd timer execution, log file timestamps, database record timing, and SSL certificate validity checks. A mismatched timezone can cause scheduled jobs to fire at the wrong hour and make log timestamps impossible to match with real-world events.

This guide shows how to change timezone on Ubuntu using the timedatectl command (the recommended approach for servers and remote machines) and through the graphical Date & Time settings on desktop systems. The steps apply to all current Ubuntu releases including 24.04 and 26.04.

<strong>Prerequisite:</strong>&nbsp;Only&nbsp;the&nbsp;root&nbsp;user&nbsp;or&nbsp;a&nbsp;user&nbsp;with&nbsp;sudo&nbsp;access&nbsp;can&nbsp;change&nbsp;the&nbsp;system&nbsp;timezone.

Check the Current Timezone Before You Change It

Run timedatectl with no arguments to see the active timezone and clock status:

bashtimedatectl

Sample output:

               Local time: Mon 2026-04-27 08:33:20 UTC           Universal time: Mon 2026-04-27 08:33:20 UTC                 RTC time: Mon 2026-04-27 08:33:22                Time zone: UTC (UTC, +0000)System clock synchronized: yes              NTP service: active          RTC in local TZ: no

A few fields worth understanding:

  • Local time: the current time according to the active timezone
  • RTC time: the hardware clock stored in a battery-backed CMOS chip. It keeps ticking even when the system is powered off
  • NTP service: when active, a network time protocol daemon synchronizes the system clock to internet time servers automatically
  • RTC in local TZ: no: Linux best practice is to store the hardware clock in UTC, not local time. Storing local time causes DST-related clock jumps and confuses dual-boot systems

The timezone is implemented as a symlink. Confirm the active timezone by checking where /etc/localtime points:

bashls -l /etc/localtime

The final component after /usr/share/zoneinfo/ shows the current timezone name.

Change Timezone on Ubuntu Using timedatectl

First, identify the exact name of your target timezone. Ubuntu uses a Region/City format, not UTC+N offsets. Region/City names are preferred because they automatically account for Daylight Saving Time transitions — a fixed offset like UTC+5:30 becomes wrong when clocks change.

List all available timezones:

bashtimedatectl list-timezones

Narrow the output with grep to search by region or city:

bashtimedatectl list-timezones | grep -i America

Timezone names are case-sensitive. Copy the name exactly as shown in the output.

Apply the new timezone:

bashsudo timedatectl set-timezone America/New_York

Verify the change:

bashtimedatectl

The Time zone line now shows the new zone and its current offset. The change takes effect immediately and persists across reboots. Unlike a manual symlink change, timedatectl updates both /etc/localtime and /etc/timezone — the second file is required by legacy tools and some older applications that do not read from /etc/localtime directly.

Change the Timezone in Ubuntu Desktop Using the GUI

Open Settings from the top-right system menu and select System, then Date & Time.

If Automatic Time Zone is enabled, Ubuntu sets the timezone based on your location services data and an internet connection. This works reliably on laptops that move between cities.

To set the timezone manually, toggle off the automatic option, click Time Zone, and type your city name in the search box. Select the matching result from the list and close the window to save.

Troubleshooting Common Timezone Issues

The timezone name returns an error. Timezone names are case-sensitive. America/new_york fails; America/New_York works. Use timedatectl list-timezones | grep -i new_york to search case-insensitively and copy the correctly formatted name.

Automatic timezone does not update in the GUI. Location services require an active internet connection and must be enabled in Privacy & Security settings. If automatic detection is unreliable on your network, set the timezone manually with timedatectl instead.

Log files still show the old timezone after the change. Long-running services read the timezone at startup and do not automatically reload it when /etc/localtime changes. Restart the affected service:

bashsudo systemctl restart &lt;service-name&gt;

Alternative method. On minimal systems or containers where timedatectl is not available, use dpkg-reconfigure tzdata to choose the timezone from an interactive terminal menu.

The timedatectl set-timezone command is the fastest and most reliable way to change timezone on Ubuntu for servers and remote machines. Desktop users get the same result through the Date & Time GUI. Leave a comment below if you run into any issues.