How To

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.

Cyber Defence

Recent Posts

file Command in Linux: Identify File Types Without Extensions

The file command inspects the actual contents of a file and reports its type — regardless of…

15 hours ago

chattr Command in Linux: Set File Attributes with lsattr

chattr sets and removes special file attributes that operate at the filesystem level, separate from standard…

15 hours ago

env Command in Linux: Show and Set Environment Variables

env prints the current environment, sets or removes variables for a single command, and can start…

15 hours ago

nmap Command in Linux: Port Scanning and Host Discovery Guide

nmap (Network Mapper) discovers live hosts, identifies open ports, and detects which service is running…

15 hours ago

id Command in Linux: Display User and Group Information

The id command prints user and group identity for any account on the system. It shows the…

2 days ago

sed Delete Lines: Remove Lines by Number, Pattern, or Range

sed processes input line by line, applies your commands, and writes the result to standard output.…

2 days ago