Introduction and Concepts
Why is Timezone Important?
Correct timezone configuration is essential for:
- System logs and traceability
- Scheduled tasks (cron jobs)
- SSL/TLS certificates
- Database synchronization
- Automated backups
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β IMPORTANCE OF TIMEZONE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
LINUX SERVER
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββ βββββββββββββ βββββββββββββ
β LOGS β β CRON β β SSL β
β β β JOBS β β CERTS β
β Accurate β β Execution β β Validity β
β timestampsβ β on time β β correct β
βββββββββββββ βββββββββββββ βββββββββββββ
β β β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β CORRECT β
β TIMEZONE β
β β
β = Reliable β
β system β
βββββββββββββββββββ
Understanding UTC and Timezones
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WORLD TIMEZONE MAP β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 UTC +1 +2 +3
β β β β β β β β β β β β β β β β
βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Los β New β London Paris
Angeles β York β β β
β β β β β β
UTC-8 UTC-7 UTC-5 UTC-3 UTC+0 UTC+1
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββ
β UTC β
β (Coordinated β
β Universal Time) β
β β
β = World reference β
β = No daylight saving β
βββββββββββββββββββββββββββ
Time Offset Example
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EXAMPLE: 12:00 UTC β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
UTC (London) 12:00
β
βββββββββββββββββΌββββββββββββββββ¬ββββββββββββββββ¬ββββββββββββββββ
β β β β β
βΌ βΌ βΌ βΌ βΌ
ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββββββ
β Los β β New β β Paris β β Moscow β β Tokyo β
β Angelesβ β York β β β β β β β
β β β β β β β β β β
β 04:00 β β 07:00 β β 13:00 β β 15:00 β β 21:00 β
β (UTC-8)β β (UTC-5)β β (UTC+1)β β (UTC+3)β β (UTC+9)β
ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββββββ
Time Architecture in Linux
The Two System Clocks
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β LINUX CLOCK ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HARDWARE β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β RTC CLOCK (Real Time Clock) β β
β β β β
β β β’ Powered by CMOS battery β β
β β β’ Runs even when PC is off β β
β β β’ Can be in UTC or local time β β
β β β’ Command: hwclock β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β At boot
β (synchronization)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SOFTWARE β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SYSTEM CLOCK β β
β β β β
β β β’ Managed by Linux kernel β β
β β β’ Counts seconds since January 1, 1970 (Unix Epoch) β β
β β β’ Always stored in UTC internally β β
β β β’ Commands: timedatectl, date β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
β Network synchronization (NTP)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NETWORK β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β NTP SERVERS β β
β β β β
β β β’ pool.ntp.org (worldwide pool) β β
β β β’ us.pool.ntp.org (US pool) β β
β β β’ Accuracy: few milliseconds β β
β β β’ Service: systemd-timesyncd or chrony β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configuration Files
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TIME SYSTEM FILES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
/etc/
βββ localtime β Symbolic link to current timezone
β βββ β /usr/share/zoneinfo/America/New_York
β
βββ timezone β Timezone name (text file)
β βββ Contents: "America/New_York"
β
βββ systemd/
βββ timesyncd.conf β NTP configuration
/usr/share/zoneinfo/ β Timezone database
βββ Africa/
β βββ ...
βββ America/
β βββ New_York β US Eastern timezone
β βββ Los_Angeles β US Pacific timezone
β βββ ...
βββ Europe/
β βββ London
β βββ ...
βββ UTC β Universal time
Prerequisites
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PREREQUISITES β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββ€
β Element β Required β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ€
β System β Ubuntu 18.04+ / Debian 9+ / CentOS 7+ β
β Access β root or sudo β
β Package β systemd (included by default) β
β Network β Internet connection (for NTP) β
βββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββ
Check Current Configuration
timedatectl Command
# Display all time information
timedatectl
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β timedatectl OUTPUT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
$ timedatectl
Local time: Sat 2025-01-25 09:30:45 EST
Universal time: Sat 2025-01-25 14:30:45 UTC
RTC time: Sat 2025-01-25 14:30:45
Time zone: America/New_York (EST, -0500)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β EXPLANATION: β
β β
β Local time β Local time (according to your timezone) β
β Universal time β UTC time (world reference) β
β RTC time β Hardware clock time β
β Time zone β Configured timezone β
β System clock synchronized β NTP synchronization active β
β NTP service β Synchronization service status β
β RTC in local TZ β Is RTC clock in local time? β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Other Verification Methods
# Display current date and time
date
# Display only timezone
timedatectl show --property=Timezone
# View /etc/localtime symbolic link
ls -la /etc/localtime
# Read /etc/timezone file (Debian/Ubuntu)
cat /etc/timezone
Change Timezone
Method 1: With timedatectl (Recommended)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TIMEZONE CHANGE PROCESS β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β List β β Choose β β Apply β β Verify β
β available ββββββΆβ timezone ββββββΆβ config ββββββΆβ result β
β timezones β β β β β β β
βββββββββββββββ βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
list-timezones grep/filter set-timezone timedatectl
Step 1: List Available Timezones
# List all timezones
timedatectl list-timezones
# Filter by region (America)
timedatectl list-timezones | grep America
# Filter by city (New York)
timedatectl list-timezones | grep New_York
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMMON TIMEZONES β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββ¬βββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Timezone β Offset β Cities / Countries β
ββββββββββββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β America/New_York β UTC-5/-4 β New York, Miami, Washington DC β
β America/Chicago β UTC-6/-5 β Chicago, Houston, Dallas β
β America/Denver β UTC-7/-6 β Denver, Phoenix, Salt Lake City β
β America/Los_Angeles β UTC-8/-7 β Los Angeles, San Francisco, Seattle β
β America/Toronto β UTC-5/-4 β Canada (Toronto, Ottawa) β
ββββββββββββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Europe/London β UTC+0/+1 β United Kingdom, Portugal β
β Europe/Paris β UTC+1/+2 β France, Belgium, Netherlands β
ββββββββββββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β Asia/Tokyo β UTC+9 β Japan β
β Asia/Shanghai β UTC+8 β China β
ββββββββββββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β UTC β UTC+0 β Universal Time (servers) β
ββββββββββββββββββββββββββββ΄βββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
Step 2: Set the Timezone
# Set timezone to New York (US Eastern)
sudo timedatectl set-timezone America/New_York
# Other examples
sudo timedatectl set-timezone America/Los_Angeles
sudo timedatectl set-timezone Europe/London
sudo timedatectl set-timezone UTC
Step 3: Verify the Change
# Verify new configuration
timedatectl
# Display date with new timezone
date
Method 2: With dpkg-reconfigure (Debian/Ubuntu)
# Interactive interface
sudo dpkg-reconfigure tzdata
Method 3: Manual Symbolic Link
# Remove current link
sudo rm /etc/localtime
# Create new link to desired timezone
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
# Update /etc/timezone (Debian/Ubuntu)
echo "America/New_York" | sudo tee /etc/timezone
NTP Synchronization
NTP Synchronization Diagram
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NTP SYNCHRONIZATION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β NTP SERVERS STRATUM 0 β
β (Atomic clocks) β
ββββββββββββββββ¬βββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββ
β NTP SERVERS STRATUM 1 β
ββββββββββββββββ¬βββββββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β pool.ntp.org β βus.pool.ntp.org β β time.google.com β
β (Worldwide) β β (US Pool) β β (Google) β
ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β β β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β
β UDP Port 123
βΌ
βββββββββββββββββββββββββββββββ
β YOUR SERVER β
β systemd-timesyncd β
βββββββββββββββββββββββββββββββ
Enable/Disable NTP Synchronization
# Check NTP status
timedatectl show | grep NTP
# Enable NTP synchronization
sudo timedatectl set-ntp true
# Disable NTP synchronization
sudo timedatectl set-ntp false
Configure NTP Servers
# Edit configuration
sudo nano /etc/systemd/timesyncd.conf
[Time]
NTP=0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org
# Restart service
sudo systemctl restart systemd-timesyncd
Manual Configuration
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ WARNING β
β β
β Manual modification requires DISABLING NTP first! β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Step 1: Disable NTP
sudo timedatectl set-ntp false
# Step 2: Change time
sudo timedatectl set-time "15:30:00"
# Step 3: Change date
sudo timedatectl set-time "2025-01-25"
# Step 4: Change date AND time
sudo timedatectl set-time "2025-01-25 15:30:00"
# Step 5: Re-enable NTP (recommended)
sudo timedatectl set-ntp true
Hardware Clock (RTC)
System Clock vs RTC Clock Diagram
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SYSTEM CLOCK vs RTC CLOCK β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ
β SYSTEM CLOCK β β RTC CLOCK β
β β β (Real Time Clock) β
βββββββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββββββ€
β β β β
β β’ Managed by kernel β β β’ Chip on motherboard β
β β’ Volatile RAM β β β’ Powered by CMOS battery β
β β’ Lost at shutdown β β β’ Persists when PC off β
β β’ Synchronized via NTP β β β’ Drifts over time β
β β β β
β Command: date β β Command: hwclock β
β timedatectl β β β
βββββββββββββββ¬ββββββββββββββββ βββββββββββββββ¬ββββββββββββββββ
β β
β SYNCHRONIZATION β
βββββββββββββββββββββββββββββββββββββββΆβ
β β
β hwclock --systohc (System β RTC) β
β hwclock --hctosys (RTC β System) β
hwclock Commands
# Display hardware clock time
sudo hwclock --show
# Sync system clock to RTC
sudo hwclock --systohc
# Set RTC to UTC (recommended)
sudo hwclock --systohc --utc
Practical Examples
Case 1: US East Coast Server
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-ntp true
timedatectl
Case 2: Multi-Regional Server in UTC
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MULTI-REGIONAL SERVER β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
CENTRAL SERVER
(Timezone: UTC)
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββ βββββββββββββ βββββββββββββ
β Client β β Client β β Client β
β New York β β London β β Tokyo β
β (UTC-5) β β (UTC+0) β β (UTC+9) β
βββββββββββββ βββββββββββββ βββββββββββββ
Advantage: All logs are in UTC
β Easy comparison across regions
sudo timedatectl set-timezone UTC
sudo timedatectl set-ntp true
Troubleshooting
Decision Tree
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TROUBLESHOOTING DECISION TREE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββ
β Time is incorrect β
ββββββββββββββ¬βββββββββββββ
β
ββββββββββββββββββββ΄βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Wrong timezone? β β Time offset by β
β β β X hours? β
ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β timedatectl β β timedatectl β
β set-timezone β β set-ntp true β
βββββββββββββββββββ βββββββββββββββββββ
Diagnostic Commands
# Check complete configuration
timedatectl
# Check timesyncd service
systemctl status systemd-timesyncd
# View timesyncd logs
journalctl -u systemd-timesyncd
# Force synchronization
sudo systemctl restart systemd-timesyncd
Command Reference
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMMAND CHEAT SHEET β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Command β Description β
βββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β timedatectl β Display current configuration β
β timedatectl list-timezones β List available timezones β
β timedatectl list-timezones | grep X β Filter timezones β
βββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β sudo timedatectl set-timezone X β Set timezone β
β sudo timedatectl set-ntp true β Enable NTP synchronization β
β sudo timedatectl set-ntp false β Disable NTP β
βββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β sudo timedatectl set-time "HH:MM:SS" β Set time (NTP disabled) β
β sudo timedatectl set-time "YYYY-MM-DD"β Set date β
βββββββββββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β timedatectl timesync-status β NTP synchronization status β
β date β Display date/time β
β sudo hwclock --show β Display RTC time β
β sudo hwclock --systohc β Sync system β RTC β
βββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
Best Practices
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BEST PRACTICES CHECKLIST β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Always use timedatectl (modern and reliable method)
β
Enable NTP synchronization on all servers
β
Use UTC for multi-regional production servers
β
Use local timezone for local servers
β
Configure RTC clock in UTC (not local time)
β
Verify UDP port 123 is open for NTP
β
Document the chosen timezone


















