Linux 系统时间设置

一、设置二十四小时制

参考:https://unix.stackexchange.com/questions/553679/set-clock-to-24-hour-format-for-all-users

1、查看当前系统可用的语言环境

Bash
localectl list-locales

2、修改 LC_TIME

Bash
#将系统的日期和时间格式设置为支持使用24小时制显示的,例如 en_GB.UTF-8 使用英式英语 (en_GB) 的习惯,并采用 UTF-8 字符编码。
LC_TIME=en_GB.UTF-8 date

#确认配置文件是否有设置过LC_TIME变量,如果有设置过就直接修改即可,没有就直接添加
cat /etc/locale.conf

#设置变量
echo "LC_TIME=en_GB.UTF-8" >> /etc/locale.conf

#设置完后,退出再登录就变成二十四小时制的时间和日期了

二、查看与修改时间

1、查看时间

Bash
timedatectl

#或:
date

#单独查看硬件时钟:
hwclock --show
#或:
clock --show

2、手动修改时间

a.将时间设置为 UTC 的时间和日期

当我们发现UTC时间是正确的北京时间,而默认的CST时间不对的时候,则可通过下边的命令将当前CST的时间修改为正确的时间:

Bash
date -u +"%Y-%m-%d %H:%M:%S"
b.手动指定时间
Bash
# 将时间设置为 2022-04-26 00:33:33
date -s "2022-04-26 00:33:33"

# 将时间设置为 UTC 的时间和日期
date -s "`date -u +"%Y-%m-%d %H:%M:%S"`"

# 将时间设置为 8 小时前
# date -d "-8 hours" +"%Y-%m-%d %H:%M:%S" # 8 小时前的时间
date -s "`date -d "-8 hours" +"%Y-%m-%d %H:%M:%S"`"

# 将时间设置为 10 分钟前
date -s "`date -d "10 minutes" +"%Y-%m-%d %H:%M:%S"`"

# 将时间设置为 1 天前
date -s "`date -d "-1 days" +"%Y-%m-%d %H:%M:%S"`"

# # 将时间设置为 1 天后
date -s "`date -d "1 days" +"%Y-%m-%d %H:%M:%S"`"

三、RTC时钟和系统时间同步

1、系统当前时区是 UTC

同步系统时间到 RTC:

Bash
hwclock --systohc

同步 RTC 时间到系统:

Bash
hwclock --hctosys

2、系统当前时区不是 UTC

同步系统时间到 RTC:

Bash
hwclock --systohc -u

同步 RTC 时间到系统:

Bash
hwclock --hctosys -u

四、简表

系统时区为 UTC系统时区不是 UTC
查看系统时间datedate
查看 RTC 时间hwclockhwclock -u
设置系统时间date -s "2020-02-25 16:33:33"date -s "2020-02-25 16:33:33"
同步系统时间到 RTChwclock --systohchwclock --systohc -u
同步 RTC 时间到系统hwclock --hctosyshwclock --hctosys -u