dzi*_*990 10 command-line time clock
我知道用于设置特定时间和/或日期的命令,但找不到相对于当前时间移动时间的命令。
将时间向前/向后移动 x 秒/分钟/小时的命令是什么?(也可能是天/月/年?)
Gil*_*il' 14
设置系统时间的命令是date。您需要以 root 身份设置系统时间。date将时间设置为给定的时间,而不是与当前时间的相对量,因为后者的行为将毫无意义。您可以构建一个命令,通过对 的输出进行计算date并将其反馈给date例如(在非嵌入式 Linux 上),以相对数量修改当前时间
date $(date +%m%d%H%M%Y.%S -d '1 hour ago')
Run Code Online (Sandbox Code Playgroud)
请注意,如果您正在运行 NTP 等计时系统,则像这样更改时钟会使其混淆。先停下来。
运行date设置系统时间,而不是硬件时钟。Linux下,运行hwclock --systohc将系统时间复制到硬件时钟;这是在干净关闭时自动完成的。
如果您想查看不同时区的时间,请忘记所有这些并设置所需的时区。在 Linux 下,运行tzselect以设置系统时区。要在不同的时区运行程序,请设置TZ环境变量,例如
export TZ=Asia/Tokyo
emacs
Run Code Online (Sandbox Code Playgroud)
如果您想运行一个程序并使其相信时间与实际时间不同,请在程序下运行它faketime。
faketime '1 hour ago' date
Run Code Online (Sandbox Code Playgroud)
小智 7
您还可以使用以下格式来获取当前时间之前的时间量:
$ date --date='1 month'
Sun Sep 17 15:01:11 CST 2017
$ date --date='1 month'
Sun Sep 17 15:01:15 CST 2017
$ date --date='1 month 2 hours'
Sun Sep 17 17:01:23 CST 2017
$ date --date='1 month 2 hours 3 minutes'
Sun Sep 17 17:04:30 CST 2017
Run Code Online (Sandbox Code Playgroud)
您也可以ago在当前日期之前使用一段时间:
$ date
Fri Aug 18 16:14:41 CST 2017
$ date --date='1 month 2 days ago'
Sat Sep 16 16:14:43 CST 2017
Run Code Online (Sandbox Code Playgroud)
您可以使用设置时间的--set选项,但在要添加到实际日期的小时数、分钟数等之前添加一个符号:+
$ date
Thu Aug 17 15:07:00 CST 2017
$ date --set='+1 day +1 hour'
Fri Aug 18 16:07:24 CST 2017
$ date
Fri Aug 18 16:07:31 CST 2017
$ date --set='+1 month 3 days +1 hour'
Thu Sep 21 17:07:42 CST 2017
Run Code Online (Sandbox Code Playgroud)
我希望这是有帮助的。