简单的

简单的

如何更改Linux系统日期?

我想改变:

  • 仅一年
  • 仅一个月
  • 仅限日期
  • 以上三者的任意组合

答案1

使用date -s:

date -s '2014-12-25 12:34:56'

以 root 身份或在sudo.仅更改年/月/日中的一个更具挑战性,并且将涉及重复当前日期的位。主要桌面环境中还内置有 GUI 日期工具,通常通过时钟访问。

要仅更改部分时间,可以在日期字符串中使用命令替换:

date -s "2014-12-25 $(date +%H:%M:%S)"

将更改日期,但保留时间。看man date用于格式化详细信息以构建其他组合:各个组件是%Y%m%d%H%M%S

答案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

相关内容