Changing system date and time formats on Linux keeps logs, reports, dashboards, and operator output aligned with the regional style a team expects. A consistent date order, clock style, and timezone makes timestamps easier to scan and reduces mistakes when comparing output from several hosts.
Date and time presentation is controlled by locale categories such as LANG and LC_TIME plus the system timezone. On systemd-based Linux distributions, localectl writes the default locale settings and timedatectl updates the timezone through the zoneinfo database under /usr/share/zoneinfo.
Changing these defaults requires administrator access and usually affects only new login sessions and services started after the change. Existing shells can keep the old values until they reconnect, and changing the timezone can shift how fresh log entries, cron jobs, and monitoring events appear compared with older records.
$ locale | grep -E '^(LANG=|LC_TIME=)'
LANG=en_US.UTF-8
LC_TIME="en_US.UTF-8"
$ timedatectl | sed -n '1,8p'
Local time: Tue 2026-04-14 11:46:51 +08
Universal time: Tue 2026-04-14 03:46:51 UTC
RTC time: Tue 2026-04-14 03:46:51
Time zone: Asia/Kuala_Lumpur (+08, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
$ date +"%x %X %Z"
04/14/2026 11:46:51 AM +08
LC_TIME controls date order and clock style, while the system timezone controls the local offset and zone abbreviation shown by tools such as date and timedatectl.
$ localectl list-locales C.UTF-8 en_AG.UTF-8 en_AU.UTF-8 ##### snipped ##### en_GB.UTF-8 ##### snipped ##### en_US.UTF-8 ##### snipped #####
If the target locale is missing, generate it with the distribution's locale tooling before continuing. On many Debian and Ubuntu systems that means locale-gen, while other glibc-based systems may use localedef.
$ sudo localectl set-locale LANG=en_US.UTF-8 LC_TIME=en_GB.UTF-8
This keeps messages in en_US.UTF-8 while switching date and time formatting to the en_GB.UTF-8 rules.
$ localectl status
System Locale: LANG=en_US.UTF-8
LC_TIME=en_GB.UTF-8
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
On distributions without systemd-localed, the same values are usually stored in /etc/locale.conf or /etc/default/locale through the distro's native tools.
$ timedatectl list-timezones | grep -i london Europe/London
$ sudo timedatectl set-timezone Europe/London
Changing the system timezone affects new log timestamps, scheduled job timing, and any service that formats local time instead of UTC.
$ timedatectl | sed -n '1,8p'
Local time: Tue 2026-04-14 04:45:36 BST
Universal time: Tue 2026-04-14 03:45:36 UTC
RTC time: Tue 2026-04-14 03:45:36
Time zone: Europe/London (BST, +0100)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
$ date +"%x %X %Z"
14/04/26 04:45:36 BST
Existing shells may keep the old locale until they log in again, so open a new terminal or restart affected services if the formatted output does not change immediately.