问题引入
在我们的业务逻辑中,经常会出现一个关于不同时间下的不同处理逻辑。测试的时候需要完成路径覆盖,测试不同时间下的行为,修改系统时间无疑是一种非常方便的方法。
linux 环境
修改时间
要修改 Linux 系统的时间,可以使用 date 命令。以下是修改系统时间的步骤:
-
打开终端或命令行窗口。
-
使用以下命令查看当前系统时间:
date
- 使用以下命令以 root 用户身份修改系统时间(需要管理员权限):
sudo date -s "YYYY-MM-DD HH:MM:SS"
其中,YYYY-MM-DD 是年份、月份和日期,HH:MM:SS 是小时、分钟和秒数。将其替换为你要设置的新时间。
例如,要将系统时间设置为 2024 年 3 月 8 日 10:30:00,可以运行以下命令:
sudo date -s "2024-03-08 10:30:00"
重新使用 date 命令检查系统时间是否已成功修改。
如果你想恢复系统时间到与网络时间同步,可以执行以下步骤:
恢复系统时间
方法一(存疑)
确保系统已连接到互联网,并具有与时间服务器同步的配置。
使用以下命令以 root 用户身份启用网络时间同步服务(需要管理员权限):
sudo timedatectl set-ntp on
等待一段时间,系统将自动从时间服务器同步时间。
再次使用 date 命令检查系统时间是否已恢复为当前的网络时间。
这样,你就可以修改 Linux 系统的时间以及恢复到与网络时间同步的状态。请注意,在修改系统时间时要谨慎操作,确保时间的准确性和合法性。
但是本人尝试执行时,大概一分钟之后都
没有恢复
。。。。
方法二(通过硬件时间改系统时间)
- 查看硬件时间(bios)
hwclock --show
这里可以发现硬件时间并没有修改
,是正常时间。说明,上面的修改时间只是修改的系统时间。
- 查看系统时间
date -R
这个时间就是我们改的时间。
- 将硬件时间写入到系统时间
hwclock -s
- 系统时间写入到硬件时间
hwclock -w