如何更改Linux系统日期?
我想改变:
- 仅一年
- 仅一个月
- 仅限日期
- 以上三者的任意组合
答案1
答案2
系统时间
您可以用来date
设置系统日期。 GNU 实现date
(在大多数非嵌入式 Linux 系统上都可以找到)接受许多不同的格式来设置时间,这里有一些示例:
仅设置年份:
date -s 'next year'
date -s 'last year'
仅设置月份:
date -s 'last month'
date -s 'next month'
仅设置日期:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
将所有内容放在一起:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
硬件时间
现在系统时间已设置,但您可能希望将其与硬件时钟同步:
用于--show
打印硬件时间:
hwclock --show
您可以将硬件时钟设置为当前系统时间:
hwclock --hctosys
或者系统时间到硬件时钟
hwclock --systohc
答案3
命令至更改系统日期是date
。
有两种方法可以调用日期命令(在Linux中):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
简单的
最简单的方法是使用,date -s
因为它允许使用简单的 相对的日期
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
日期没有改变,因为它是由有限的用户执行的$
。如果您确实想要更改日期,请使用 root ( #
) 或 sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
因此,改变 a 的任何部分相对的日期就像命名它一样简单:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
绝对日期有点复杂,因为它们需要更多细节:
$ date -s "2001-07-23 10:11:12"
或者,您可以使用 date 命令两次:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
将其中任何一个替换%
为有效值,并且将设置日期(仅作为根)。
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
直接的
第二个约会电话表格用于直接地更改系统日期。
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
所以 :
date 11230812 # MMDDhhmm
将日期定为 11 月 23 日 08 点 12 分。
BSD也有类似的命令但格式不同([[[[[cc]yy]mm]dd]HH]MM[.ss])。
尝试date
以受限用户身份查看它会做什么(不进行任何更改):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
或者,如果您确实想更改日期,请以 root 身份执行:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
请注意,NTP 或 chrony 等服务将受到影响。并且,如果重新启动,会将日期重置回真实日期。
添加 YY 以设置年份:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
或 CCYY 设置年份和世纪:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982
答案4
截至 2022 年 12 月:
您可以禁用 NTP 同步前实际日期变更:
sudo timedatectl set-ntp 0
sudo timedatectl set-time "2022-12-03 $(date +%H:%M:%S)"
当不再需要修改日期时,您应该再次启用 NTP 同步以自动更新系统日期:
sudo timedatectl set-ntp 1