本文最后更新于 257 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
相关命令
date 显示和设置系统时间
date +%s 显示系统的时间戳
date -d @1509536033 由给定的时间转成时间戳
hwclock,clock: 显示硬件时钟
-s, --hctosys 以硬件时钟为准,校正系统时钟
-w, --systohc 以系统时钟为准,校正硬件时钟
时区:/etc/localtime
显示日历:cal –y
1、date 显示和设置系统时间
#date显示日期和时间
[root@localhost ~]# date
Tue Jan 9 03:10:59 EST 2024
[root@localhost ~]#
#date -s "字符串"设置时间只有root权限才能设置,其他只能查看
[root@localhost ~]# date
Sat Nov 11 16:11:13 EST 2023
[root@localhost ~]# date -s '20230111 16:11:11'
Wed Jan 11 16:11:11 EST 2023
[root@localhost ~]# date
Wed Jan 11 16:11:12 EST 2023
date +%s #显示系统的时间戳
[root@localhost ~]# date +%s
1673473237
[root@localhost ~]#
#date -d由给定的时间转成时间戳
[root@localhost ~]# date -d @1509536033
Wed Nov 1 07:33:53 EDT 2017
[root@localhost ~]#
格式 FORMAT 控制着输出格式. 仅当选项指定为全球时间时本格式才有效。 分别解释如下:
%a
#当前区域的星期几的简写 (Sun..Sat)
[root@localhost ~]# date +%a
Wed
[root@localhost ~]#
%A
#当前区域的星期几的全称 (不同长度) (Sunday..Saturday)
[root@localhost ~]# date +%A
Wednesday
[root@localhost ~]
%b
#当前区域的月份的简写 (Jan..Dec)
[root@localhost ~]# date +%b
Jan
[root@localhost ~]#
%B
#当前区域的月份的全称(变长) (January..December)
[root@localhost ~]# date +%B
January
[root@localhost ~]#
%c
#当前区域的日期和时间 (Sat Nov 04 12:02:33 EST 1989)
[root@localhost ~]# date +%c
Wed 11 Jan 2023 04:22:53 PM EST
[root@localhost ~]#
%d
#(月份中的)几号(用两位表示) (01..31)
[root@localhost ~]# date +%d
11
[root@localhost ~]#
#日期(按照 月/日期/年 格式显示) (mm/dd/yy)
[root@localhost ~]# date +%D
01/11/23
[root@localhost ~]#
%e
#(月份中的)几号(去零表示) ( 1..31)
[root@localhost ~]# date +%e
11
[root@localhost ~]#
%F
#显示当前年月日 例如 2022-1-11
[root@localhost ~]# date +%F
2023-01-11
[root@localhost ~]#
%h
#同 %b
[root@localhost ~]# date +%h
Jan
[root@localhost ~]#
%H
#小时(按 24 小时制显示,用两位表示) (00..23)
[root@localhost ~]# date +%H
16
[root@localhost ~]#
%I
#小时(按 12 小时制显示,用两位表示) (01..12)
[root@localhost ~]# date +%l
4
[root@localhost ~]#
%j
#(一年中的)第几天(用三位表示) (001..366)
[root@localhost ~]# date +%j
011
[root@localhost ~]#
%k
#小时(按 24 小时制显示,去零显示) ( 0..23)
[root@localhost ~]# date +%k
16
[root@localhost ~]#
%l
#小时(按 12 小时制显示,去零表示) ( 1..12)
[root@localhost ~]# date +%l
4
[root@localhost ~]#
%m
#月份(用两位表示) (01..12)
[root@localhost ~]# date +%m
01
[root@localhost ~]#
%M
#分钟数(用两位表示) (00..59)
[root@localhost ~]# date +%M
27
[root@localhost ~]#
%n
#换行
[root@localhost ~]# date +%n
[root@localhost ~]#
%p
#当前时间是上午 AM 还是下午 PM
[root@localhost ~]# date +%p
PM
[root@localhost ~]#
%r
#时间,按 12 小时制显示 (hh:mm:ss [A/P]M)
[root@localhost ~]# date +%r
04:27:44 PM
[root@localhost ~]#
%s
从 1970年1月1日0点0分0秒到现在历经的秒数 (GNU扩充)
%S
#秒数(用两位表示)(00..60)
[root@localhost ~]# date +%S
49
[root@localhost ~]#
%t
#水平方向的 tab 制表符
[root@localhost ~]# date +%t
[root@localhost ~]#
%T
#时间,按 24 小时制显示(hh:mm:ss)
[root@localhost ~]# date +%T
16:28:02
[root@localhost ~]#
%U
#(一年中的)第几个星期,以星期天作为一周的开始(用两位表示) (00..53)
[root@localhost ~]# date +%U
02
[root@localhost ~]#
%V
#(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (01..52)
[root@localhost ~]# date +%V
02
[root@localhost ~]#
%w
#用数字表示星期几 (0..6); 0 代表星期天
[root@localhost ~]# date +%w
3
[root@localhost ~]#
%W
#(一年中的)第几个星期,以星期一作为一周的开始(用两位表示) (00..53)
[root@localhost ~]# date +%W
02
[root@localhost ~]#
%x
#按照 (mm/dd/yy) 格式显示当前日期
[root@localhost ~]# date +%x
01/11/2023
[root@localhost ~]#
%X
#按照 (%H:%M:%S) 格式显示当前时间
[root@localhost ~]# date +%X
04:28:31 PM
[root@localhost ~]#
%y
#年的后两位数字 (00..99)
[root@localhost ~]# date +%y
23
[root@localhost ~]#
%Y
#年(用 4 位表示) (1970...)
[root@localhost ~]# date +%Y
2023
[root@localhost ~]#
%z
#按照 RFC-822 中指定的数字时区显示(如, -0500) (为非标准扩充)
[root@localhost ~]# date +%z
-0500
[root@localhost ~]#
%Z
#时区(例如, EDT (美国东部时区)), 如果不能决定是哪个时区则为空
[root@localhost ~]# date +%Z
EST
[root@localhost ~]#
默认情况下,用 0 填充数据的空缺部分. GNU 的 date 命令能分辨在 `%'和数字指示之间的以下修改.
MARKDOWN_HASH19c446599a90fbba3b8d92b665f9191cMARKDOWNHASH
' (下划线) 用空格进行填充 。
[root@localhost ~]# date +%Y-%m-%d-%H-%M-%S
2023-01-11-16-38-45
[root@localhost ~]#