详解Linux系统中的日期设定与date命令的用法

Linux系统里啊,这date命令...挺重要的。

一、date命令的基本用法 想看现在啥时候?直接敲date就行。
屏幕上立马就有时间了。

要是想看个具体点的格式?比如年月日时分秒这种? 就用date +格式。
比如date +'%Y-%m-%d %H:%M:%S'。
你看,2 02 2 年1 2 月3 1 日晚上8 点2 0分,用date +'%Y-%m-%d %H:%M:%S'能看到是'2 02 2 -1 2 -3 1 2 0:2 0:00'。

二、设定系统日期和时间 想改系统时间?得用date这个命令。
但是有两种写法。
一种是用date --set='时间字符串'。
比如,想把时间改成2 02 3 年1 0月5 日1 2 点3 4 分5 6 秒。
就用date --set='2 02 3 -1 0-05 1 2 :3 4 :5 6 '。

还有一种写法,数字的。
date MMDDhhmm[[CC]YY][.ss]。
同样是这个时间,就用date 1 005 1 2 3 4 2 02 3 注意年份是四位数,2 02 3 就是2 02 3
不过!改时间这事儿,得root用户才行。
普通用户,比如我是user,想改时间?不行。
我敲date --set='2 02 3 -1 0-06 1 3 :00:00'。
屏幕上可能就显示一堆错误,说我没有权限。
所以,设定系统时间,必须root。

三、date命令的常用格式标记 这个很重要。
你想看啥格式的时间,就用%后面跟字母。
比如:%H是小时,2 4 小时制。
2 3 点就是2 3 %H是2 4 小时制,%I是1 2 小时制。
1 2 点就是1 2 %M是分钟。
00到5 9 %S是秒。
00到6 1 ,因为有些特殊情况可以有6 1 秒。
%T是时间,直接显示%H:%M:%S。
比如1 5 :3 0:4 5
看日期呢? %Y是年份。
比如2 02 2 %m是月份。
01 到1 2 比如05 就是五月。
%d是日。
01 到3 1 比如1 5 就是1 5 号。
%D是日期,格式是mm/dd/yy。
比如05 /1 5 /2 2
看星期几呢? %a是缩写。
比如Mon, Tue... %A是全称。
比如Monday, Tuesday... 比如,date +'%A'。
屏幕上可能会显示Tuesday。

四、使用-d选项查询特定日期或相对日期 这个-d选项很方便。
想看某个具体日期是啥时候? 就用date -d "日期字符串"。
比如,想看2 02 3 年1 0月5 日是星期几。
就用date -d "2 02 3 -1 0-05 " +'%A'。
屏幕上可能会显示Thursday。

想看相对的日期呢? date -d "相对时间"。
比如date -d "2 weeks" +'%Y-%m-%d'。
屏幕上可能会显示两周后的日期,比如2 02 3 -1 0-2 6 date -d "yesterday" +'%Y-%m-%d'。
屏幕上会显示昨天的日期,比如2 02 3 -1 0-04
五、注意事项 改完系统时间,特别重要! 得用命令clock -w。
这个命令把时间写进CMOS里。
为啥要写?为了下次开机,电脑还能记住时间。
如果不用clock -w,重启后,系统时间可能又变回默认的,或者不对了。

还有啊,用date命令的时候,你要是前面不加+号。
比如敲date 2 02 3 1 005 那这个date命令,不是看时间,是改成时间! 所以特别小心!不加+号,默认就是改时间。
改时间嘛,前面说了,得root。
我是普通用户,敲date 2 02 3 1 006 屏幕上肯定提示权限不够,不能改时间。
只有root才能改。
普通用户只能看时间。

六、扩展功能 Linux下面啊,有NTP服务。
这个服务能自动同步时间。
但是有时候你想手动同步一下? 就用ntpdate命令。
比如敲ntpdate ntp1 .nl.net。
这个命令会去问这个服务器,然后把时间同步过来。
同步完之后,用date看看,时间就准了。
当然,这个命令也需要root权限。

还有啊,date这个命令,除了看时间,改时间。
还能用-d选项,查特定日期是星期几,或者查相对日期。
比如date -d "2 02 3 -1 0-05 " +'%a',看那天是周三。
date -d "today" +'%Y-%m-%d',看今天是什么日期。
date -d "tomorrow" +'%Y-%m-%d',看明天是什么日期。
都很方便。

就这样吧。
date命令,基本就这些用法。

LINUX怎么设置系统时间_Linux修改系统日期与时间的方法

Linux改时间用date或timedatectl,hwclock同步硬件。

date用sudo,格式MMDDhhmmYYYY.ss,比如sudo date 04 05 1 03 02 02 5
timedatectl更方便,sudo timedatectl set-time "2 02 5 -04 -05 1 0:3 0:00"。
建议开NTP自动校准,sudo timedatectl set-ntp true。

改完时间用sudo hwclock --systohc同步硬件,重启不会变回老时间。

注意虚拟机要检查时区,硬件时钟精度不高。

你自己掂量。

Linux命令行时间和日期查看设置方法

当时我打开Linux的命令行界面,想看看时间,我就敲了date,屏幕上立刻显示出了2 02 2 年某个城市当前的时间日期,包括年份,还挺全的。
后来我又想了解得更详细一点,我就试着敲了timedatectl status,这回就看到了本地时间、UTC时间、RTC时间,还有时区,甚至NTP同步状态,信息挺多的。

有一次,系统时间错了,我懵了,当时就想着怎么改,我就用date命令试了,得先sudo,然后date -s "2 02 2 -1 1 -01 1 4 :3 0:00",这回时间就对了。
但是我后来发现,我得再运行个命令hwclock -w,不然重启后时间又错了。

后来,我发现timedatectl这个命令更方便,我就用它来设置时间,格式也简单,比如timedatectl set-time "2 02 2 -1 1 -01 ",然后timedatectl set-time "1 4 :3 0:00",这样日期和时间就都设置了。
而且,我还用它来设置时区,先list-timezones看看有哪些可选的时区,然后选一个,比如timedatectl set-timezone "Asia/Shanghai",这回时区也改了。

至于NTP同步,我觉得挺重要的,我就用timedatectl set-ntp true来启用它,这样系统就能自动更新时间了。
如果要禁用,我就敲timedatectl set-ntp false,这样就得手动调整时间了。

总的来说,date命令挺快,但是得手动同步硬件时钟,而timedatectl命令功能更全面,是现代Linux系统里的首选。
我推荐大家用timedatectl,特别是NTP同步,这能保证时间准确,不用手动调整。