RHEL BasedRocky Linux

How To Change TimeZone on Rocky Linux 10

Change TimeZone on Rocky Linux 10

Managing system time correctly is fundamental to maintaining a healthy Linux server environment. The timezone setting determines how your Rocky Linux 10 system displays timestamps, schedules automated tasks, and synchronizes with other servers across your infrastructure. Incorrect timezone configuration can lead to mismatched log entries, failed cron jobs, and synchronization issues with databases and applications. Rocky Linux 10, following the modern RHEL ecosystem standards, utilizes systemd’s powerful timedatectl utility to manage timezone settings efficiently. This comprehensive guide walks you through multiple methods to change your system’s timezone, verify the configuration, and ensure your time synchronization works flawlessly.

Whether you’re setting up a new server, migrating systems across regions, or troubleshooting time-related issues, understanding timezone management is an essential skill for system administrators and DevOps professionals.

Prerequisites

Before proceeding with timezone configuration on your Rocky Linux 10 system, ensure you have the following requirements in place:

A functional Rocky Linux 10 installation running either as a physical server, virtual machine, or cloud instance. You’ll need administrative access through either root privileges or a user account with sudo permissions. If you’re managing a remote server, establish a stable SSH connection to execute the commands. Basic familiarity with the Linux command-line interface will help you navigate through the process smoothly. The methods described here also apply to other Red Hat Enterprise Linux derivatives, including AlmaLinux, CentOS Stream, and Oracle Linux, making this guide valuable across multiple RHEL-based distributions.

Understanding Timezones and System Time in Rocky Linux

Rocky Linux manages system time through several interconnected components that work together to maintain accurate timestamps. By default, most Linux servers operate in UTC (Coordinated Universal Time), which serves as the global time standard and eliminates confusion when dealing with servers across different geographical locations.

The system maintains three distinct time representations: local time (adjusted according to your configured timezone), universal time (UTC standard), and RTC (Real-Time Clock) time stored in your hardware’s CMOS battery-backed clock. Rocky Linux stores timezone information in the /usr/share/zoneinfo directory, which contains hundreds of timezone definition files organized by continent and city.

The systemd-timedated service manages all time-related configurations, providing a unified interface through the timedatectl command. This service automatically handles daylight saving time transitions and ensures consistency between your configured timezone and displayed timestamps. Modern Linux systems also integrate NTP (Network Time Protocol) synchronization to maintain clock accuracy by periodically communicating with internet time servers.

Rocky Linux 10 includes the chrony daemon as its default NTP implementation, offering superior performance and accuracy compared to older ntpd solutions. The combination of proper timezone configuration and active NTP synchronization ensures your system maintains precise time tracking essential for logging, security certificates, and time-sensitive applications.

Checking Current Timezone Configuration

Using timedatectl Command

The primary method for examining your current timezone settings involves the timedatectl command, which displays comprehensive time-related information. Execute the command without any arguments:

timedatectl

Alternatively, you can use the explicit status parameter:

timedatectl status

The output presents several critical pieces of information. The “Local time” field shows the current time according to your configured timezone. “Universal time” displays the equivalent UTC timestamp, while “RTC time” reveals what your hardware clock currently reads. The “Time zone” line presents your configured timezone in the standard continent/city format, followed by its abbreviation and UTC offset.

Pay particular attention to the “System clock synchronized” field, which indicates whether your system successfully synchronizes with NTP servers. The “NTP service” line confirms whether the chrony daemon is active and maintaining time accuracy. Finally, “RTC in local TZ” shows whether your hardware clock uses local timezone or UTC—this should typically read “no” for proper server configuration.

Checking the Symbolic Link

Rocky Linux implements timezone settings through a symbolic link mechanism. The /etc/localtime file isn’t actually a standalone file but rather a symbolic link pointing to the appropriate timezone definition in /usr/share/zoneinfo. Examine this link directly:

ls -l /etc/localtime

The output reveals the symlink target, showing exactly which timezone file your system currently uses. This underlying mechanism explains how timezone changes take effect immediately—modifying the symbolic link instantly changes how the system interprets timestamps. Some distributions also maintain an /etc/timezone text file, though Rocky Linux primarily relies on the symbolic link method for consistency with systemd standards.

Listing Available Timezones

Viewing All Timezones

Rocky Linux provides access to an extensive database of timezone definitions covering virtually every location worldwide. Display the complete list using:

timedatectl list-timezones

The output presents timezones in the standardized IANA timezone database format, following the “Continent/City” or “Continent/Region” naming convention. This hierarchical structure helps you locate the appropriate timezone quickly. Navigate through the lengthy list using arrow keys for line-by-line movement or Page Up and Page Down for faster scrolling. Press ‘q’ to exit the list viewer when you’ve found your desired timezone.

Filtering Timezones

Searching through hundreds of timezone entries becomes tedious without filtering capabilities. Narrow down results by combining the list command with grep:

timedatectl list-timezones | grep America

This command displays only timezones within the Americas, including regions like America/New_York, America/Chicago, and America/Los_Angeles. Apply the same technique for other continents:

timedatectl list-timezones | grep Asia
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep Africa

For more specific searches, include city names or additional filter terms. Finding Indonesia’s capital timezone becomes straightforward:

timedatectl list-timezones | grep Jakarta

This filtering approach saves significant time when you know your target region but need the exact timezone identifier.

Changing the Timezone on Rocky Linux 10

Basic Timezone Change Method

The timedatectl utility provides a straightforward command for updating your system timezone. The basic syntax follows this pattern:

sudo timedatectl set-timezone [timezone_name]

Follow these steps for successful timezone modification. First, identify your desired timezone using the list and filtering methods described earlier. Note the exact timezone identifier, paying careful attention to capitalization and underscores—timezone names are case-sensitive, and incorrect spelling produces errors. Copy the complete timezone name to avoid transcription mistakes.

Execute the set-timezone command with your chosen timezone. For example, setting your server to Jakarta time:

sudo timedatectl set-timezone Asia/Jakarta

The command executes silently when successful—no confirmation message appears. Configure a server for New York’s Eastern Time:

sudo timedatectl set-timezone America/New_York

Switch to London’s timezone for European operations:

sudo timedatectl set-timezone Europe/London

Adjust to Cairo time for Middle Eastern deployments:

sudo timedatectl set-timezone Africa/Cairo

Each change takes effect immediately without requiring system reboot or service restarts, though individual applications may need restarting to recognize the new timezone.

Common Timezone Examples

Understanding frequently used timezone identifiers helps streamline configuration across different regions. United States deployments commonly use America/New_York (Eastern), America/Chicago (Central), America/Denver (Mountain), and America/Los_Angeles (Pacific). Asian operations frequently reference Asia/Tokyo, Asia/Singapore, Asia/Shanghai, Asia/Jakarta, Asia/Kolkata, and Asia/Dubai.

European servers typically configure Europe/London, Europe/Paris, Europe/Berlin, Europe/Amsterdam, or Europe/Moscow. Australian deployments utilize Australia/Sydney or Australia/Melbourne, while South American systems often use America/Sao_Paulo or America/Buenos_Aires.

For servers requiring neutral UTC time, use the Etc/UTC identifier:

sudo timedatectl set-timezone Etc/UTC

Alternative UTC representations include UTC, Etc/GMT, or GMT, though Etc/UTC remains the preferred standard notation.

Permission Requirements

Timezone modification affects system-wide settings, requiring administrative privileges for security reasons. Regular user accounts cannot alter timezone configuration without elevated permissions. The sudo prefix grants temporary root access for executing the timedatectl command while maintaining accountability through audit logs.

Alternatively, switch to the root user account entirely:

su -
timedatectl set-timezone Asia/Jakarta

However, following the principle of least privilege, using sudo for individual commands provides better security practices than maintaining an active root session. Always verify your sudo access before attempting timezone changes to avoid permission-denied errors mid-process.

Verifying Timezone Changes

Using timedatectl to Confirm

After modifying your timezone configuration, immediate verification ensures the change applied correctly. Run timedatectl again:

timedatectl

Examine the “Time zone” field carefully, confirming it displays your newly configured timezone with the correct abbreviation and UTC offset. The local time should now reflect your target region’s current time. Compare the universal time and local time values—their difference should match the expected offset for your chosen timezone.

Using date Command

The traditional date command provides another verification method, displaying the current timestamp according to your configured timezone:

date

The output format includes the current date, time, and timezone abbreviation. For instance, Jakarta time displays WIB (Western Indonesia Time), while Eastern Time shows EST or EDT depending on daylight saving status. Comparing date output before and after timezone changes provides clear evidence that your modification succeeded.

Checking Symbolic Link Update

Verify that the underlying symbolic link updated correctly:

ls -l /etc/localtime

The symlink target should now point to your newly configured timezone file within /usr/share/zoneinfo. This low-level verification confirms that timedatectl properly updated the system configuration files. The symbolic link mechanism ensures all system components immediately recognize the timezone change without requiring configuration file parsing.

Alternative Method: Manual Symbolic Link Creation

While timedatectl represents the recommended approach for modern Rocky Linux systems, understanding manual timezone configuration proves valuable for troubleshooting scenarios or working with minimal installations where systemd tools might not be available.

Before making manual changes, backup your existing configuration:

sudo mv /etc/localtime /etc/localtime.backup

Locate your desired timezone file in the /usr/share/zoneinfo directory structure. Browse available options:

ls /usr/share/zoneinfo/
ls /usr/share/zoneinfo/Asia/

Create the symbolic link manually using the ln command with the force and symbolic flags:

sudo ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

Additional examples for different regions:

sudo ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime

Verify the manual change using timedatectl and date commands as described earlier. The manual method works reliably but bypasses systemd’s timezone management infrastructure, potentially causing inconsistencies with systemd-aware services. Always prefer timedatectl when available, reserving manual configuration for emergency situations or specialized environments.

Critical note: Always create a symbolic link rather than copying the timezone file. Symbolic links allow system updates to automatically refresh timezone data when DST rules change, while copied files remain static and potentially outdated.

Understanding NTP and Time Synchronization

Role of NTP in Timezone Management

Network Time Protocol provides automatic clock synchronization, ensuring your system maintains accurate time regardless of hardware clock drift. NTP works independently from timezone configuration but complements it perfectly—while timezone settings determine how timestamps display, NTP ensures the underlying system clock remains accurate to millisecond precision.

Rocky Linux 10 utilizes chronyd as its NTP implementation, offering superior performance compared to legacy ntpd. The chrony daemon automatically adjusts your system clock by communicating with internet time servers, gradually correcting any deviation without causing disruptive time jumps that might affect running applications.

Check your NTP synchronization status through timedatectl output. The “System clock synchronized” field should indicate “yes” for properly configured systems. Active NTP synchronization becomes particularly critical for servers maintaining security certificates, processing financial transactions, or participating in distributed systems where accurate timestamps prevent data conflicts.

Ensuring NTP is Active

Verify that the chrony service runs correctly:

sudo systemctl status chronyd

The output displays the service status, recent log messages, and process information. If chronyd isn’t running, start it immediately:

sudo systemctl start chronyd

Ensure chrony starts automatically during system boot:

sudo systemctl enable chronyd

Examine which NTP servers chronyd currently uses:

chronyc sources

This command lists configured time sources with synchronization statistics. The tracking command provides detailed synchronization information:

chronyc tracking

Review system offset, frequency error, and last update timestamps to assess synchronization quality. Properly configured NTP synchronization, combined with correct timezone settings, ensures your Rocky Linux 10 system maintains precise, properly-formatted timestamps essential for logging, monitoring, and application operations.

Reverting to UTC Timezone

Many server environments prefer keeping systems configured to UTC rather than local timezones. UTC eliminates confusion when managing distributed infrastructure across multiple regions, simplifies log correlation when troubleshooting issues spanning different servers, and prevents complications from daylight saving time transitions.

Revert your timezone to UTC at any time:

sudo timedatectl set-timezone Etc/UTC

Alternative UTC representations work identically:

sudo timedatectl set-timezone UTC

UTC configuration particularly benefits containerized environments where Docker containers often expect UTC timestamps, multi-region deployments where correlating events requires consistent time references, and database servers where timestamp handling becomes complex with local timezones. Application servers generating logs that feed centralized monitoring systems also benefit from UTC consistency, allowing operations teams to correlate events accurately without timezone conversion calculations.

Verify the reversion by checking that timedatectl shows UTC as your configured timezone with zero offset from universal time. Many experienced system administrators adopt the practice of maintaining all servers in UTC while allowing applications to handle timezone conversions for user-facing displays, separating infrastructure concerns from presentation logic.

Additional timedatectl Configuration Options

Setting Date and Time Manually

Certain scenarios require manual time configuration, though this practice should remain rare with reliable NTP synchronization available. Before setting time manually, disable automatic NTP synchronization temporarily:

sudo timedatectl set-ntp no

Set the system time using the following format:

sudo timedatectl set-time "2025-11-23 10:30:00"

The command accepts timestamps in “YYYY-MM-DD HH:MM:SS” format, updating both system clock and hardware clock simultaneously. After manual adjustment, re-enable NTP to prevent future clock drift:

sudo timedatectl set-ntp yes

Chronyd will gradually synchronize your manually-set time with authoritative time sources, correcting any inaccuracy without causing abrupt time jumps. Avoid manual time setting unless absolutely necessary—situations like isolated networks without internet access, emergency troubleshooting, or initial system setup might justify this approach.

RTC (Real-Time Clock) Configuration

Your server’s hardware includes a battery-powered real-time clock that maintains time when the system powers off. Linux systems can configure this hardware clock to use either UTC or local timezone. The default and recommended setting keeps RTC in UTC:

sudo timedatectl set-local-rtc 0

Setting RTC to local timezone requires:

sudo timedatectl set-local-rtc 1

The primary scenario for local RTC involves dual-boot systems running both Linux and Windows, since Windows traditionally expects hardware clocks in local time. However, pure Linux servers should always maintain RTC in UTC to avoid complications during daylight saving transitions and timezone changes.

When RTC uses local timezone and you modify your system timezone, the hardware clock must also update, creating potential inconsistencies. UTC RTC eliminates this problem entirely, keeping hardware and system clocks cleanly separated from timezone display settings. Best practice dictates leaving RTC in UTC unless specific requirements mandate otherwise, and even then, carefully document the decision for future administrators.

Troubleshooting Common Issues

Permission Denied Errors

Encountering permission denied messages typically indicates insufficient privileges for modifying system configuration. Ensure you prefix timedatectl commands with sudo to elevate privileges temporarily. Verify your account’s sudo access:

sudo -l

This command lists available sudo permissions for your account. If sudo access is unavailable, contact your system administrator to grant appropriate permissions or switch to the root account when absolutely necessary. Always use sudo rather than root login for audit trail purposes and security best practices.

Invalid Timezone Name

The “Failed to set time zone: Invalid or not installed time zone” error stems from incorrect timezone identifiers. Timezone names are strictly case-sensitive—”asia/jakarta” fails while “Asia/Jakarta” succeeds. Verify the exact timezone name through timedatectl list-timezones and copy it precisely.

Avoid manual typing when possible; use copy-paste to eliminate transcription errors. Tab completion might assist in some shell configurations, though this feature isn’t universally available for timezone names. Double-check that underscores appear where required, such as “America/New_York” rather than “America/New York” with spaces.

Changes Not Persisting After Reboot

If timezone settings revert after system restart, investigate filesystem permissions on /etc/localtime. Verify the file isn’t write-protected or owned by incorrect users:

ls -l /etc/localtime
sudo chown root:root /etc/localtime

SELinux security contexts might prevent timezone changes on systems with enforcing SELinux policies. Check SELinux status and contexts:

getenforce
ls -Z /etc/localtime

Recreate the symbolic link manually if corruption occurred, ensuring proper ownership and permissions. Review system logs for relevant error messages:

journalctl -xe | grep -i time

These logs often reveal underlying issues preventing persistent timezone configuration, such as filesystem errors, SELinux denials, or systemd service failures.

Best Practices for Timezone Management

Implementing proper timezone management requires strategic thinking beyond simple command execution. Consider keeping production servers configured to UTC unless specific business requirements mandate local timezones—this practice simplifies distributed system management and eliminates daylight saving time complications.

Always verify timezone changes immediately after implementation using multiple verification methods. Document timezone settings in your infrastructure-as-code configurations and system documentation, ensuring consistency across server provisioning and enabling new team members to understand design decisions.

Consider timezone implications across your entire stack. Log file timestamps must remain consistent for effective troubleshooting—mixed timezones across infrastructure components complicate correlation during incident response. Cron jobs and scheduled tasks execute according to system timezone, potentially causing unexpected timing when timezone changes occur. Applications handling time-sensitive operations require careful timezone configuration matching their business logic requirements.

Database timestamp handling deserves special attention since different database engines manage timezone data differently. PostgreSQL offers sophisticated timezone support, while MySQL traditionally struggles with timezone handling—understand your database’s behavior before configuring system timezones. Test timezone changes in development or staging environments before applying to production systems, validating that applications correctly handle the modified configuration.

For infrastructure at scale, leverage configuration management tools like Ansible, Puppet, or Chef to maintain consistent timezone settings across server fleets. These tools prevent configuration drift and enable rapid deployment of timezone updates when requirements change. Coordinate timezone modifications with application development teams, ensuring backend services, frontend displays, and infrastructure configurations align properly.

Enable and monitor NTP synchronization continuously—accurate time synchronization prevents subtle timing bugs that manifest as intermittent application failures or data corruption. Regular monitoring of chronyd status ensures your systems maintain precise time tracking essential for modern distributed applications and security protocols.

Congratulations! You have successfully changed the timezone. Thanks for using this tutorial to change the timezone on your Rocky Linux 10 system. For additional help or useful information, we recommend you check the official Rocky Linux website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button