如果想要查看 Linux 中的时间,或者修改 Linux 系统时间,可以使用 date
命令。date
命令可以显示或者设置当前日期和时间,它还可用于以指定的格式显示或计算日期。超级用户(root)可以使用它来设置系统时钟。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类 UNIX 系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970 年 1 月 1 日 0 时 0 分 0 秒起流逝的秒数。
相关教程:《Linux CentOS/Ubuntu/Debian 修改设置系统时区教程》。
一、Linux date 命令使用方法
不带任何选项使用时,date
命令显示当前系统日期和时间,包括星期几、月份、时间、时区和年份:
date
Mon Nov 8 20:43:54 CST 2021
要在特定日期进行操作,可以提供带有 -d
标志的 date
命令:
date -d "1974-01-04"
Fri Jan 4 00:00:00 EST 1974
date
有许多显示格式选项。通过在日期前加上加号来为日期提供格式字符串:
date +"Week number: %V Year: %y"
Week number: 45 Year: 21
然后输出格式字符串,每个格式标记替换为其值。%V
是显示当前周数的格式选项,%y
代表年份的最后两位数字。
二、Linux date 命令具体语法介绍
以上是一个简单的例子,方便大家快速熟悉 date
命令,下面看一下 Linux date
命令具体语法。
语法
date[选项][参数]
选项
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
参数
<+时间日期格式>:指定显示时使用的日期时间格式。
日期格式列表
%H 小时,24小时制(00~23) %I 小时,12小时制(01~12) %k 小时,24小时制(0~23) %l 小时,12小时制(1~12) %M 分钟(00~59) %p 显示出AM或PM %r 显示时间,12小时制(hh:mm:ss %p) %s 从1970年1月1日00:00:00到目前经历的秒数 %S 显示秒(00~59) %T 显示时间,24小时制(hh:mm:ss) %X 显示时间的格式(%H:%M:%S) %Z 显示时区,日期域(CST) %a 星期的简称(Sun~Sat) %A 星期的全称(Sunday~Saturday) %h,%b 月的简称(Jan~Dec) %B 月的全称(January~December) %c 日期和时间(Tue Nov 20 14:12:58 2012) %d 一个月的第几天(01~31) %x,%D 日期(mm/dd/yy) %j 一年的第几天(001~366) %m 月份(01~12) %w 一个星期的第几天(0代表星期天) %W 一年的第几个星期(00~53,星期一为第一天) %y 年的最后两个数字(1999则是99)
三、Linux date 命令更多使用示例
date 命令还提供一些方便的日期选项供使用,比如:
$ date -d now Mon Nov 8 21:13:38 CST 2021 $ date -d today Mon Nov 8 21:13:50 CST 2021 $ date -d yesterday Sun Nov 7 21:14:03 CST 2021 $ date -d tomorrow Tue Nov 9 21:14:14 CST 2021 $ date -d sunday Sun Nov 14 00:00:00 CST 2021 $ date -d last-sunday Sun Nov 7 00:00:00 CST 2021
此外还有: last-week
,next-week
,last-month
,next-month
,last-year
和 next-year
。
格式化输出
$ date +"%Y-%m-%d" 2021-11-08
输出昨天日期
$ date -d "1 day ago" +"%Y-%m-%d" 2021-11-07
2 秒后输出
$ date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2021-11-08 21:16.46
1234567890 秒
$ date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30
普通转格式
$ date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S" 2009/12/12 00:00.00
Apache 格式转换
$ date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S" 2009-12-05 00:00.37
格式转换后时间游走
$ date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2007-12-05 00:00.37
统计从 1970 年 1 月 1 日到现在的秒数
$ date +%s 1636377584
统计指定时间到现在的秒数
$ date -d "1974-01-04" +"%s" 126460800
查询特定日期是星期几
$ date -d "1974-01-04" +"%A" Friday
加减操作
date +%Y%m%d //显示前天年月日 date -d "+1 day" +%Y%m%d //显示前一天的日期 date -d "-1 day" +%Y%m%d //显示后一天的日期 date -d "-1 month" +%Y%m%d //显示上一月的日期 date -d "+1 month" +%Y%m%d //显示下一月的日期 date -d "-1 year" +%Y%m%d //显示前一年的日期 date -d "+1 year" +%Y%m%d //显示下一年的日期
四、使用 date 命令设置系统时间
设定时间
date -s //设置当前时间,只有root权限才能设置,其他只能查看 date -s 20120523 //设置成20120523,这样会把具体时间设置成空00:00:00 date -s 01:01:01 //设置具体时间,不会对日期做更改 date -s "01:01:01 2012-05-23" //这样可以设置全部时间 date -s "01:01:01 20120523" //这样可以设置全部时间 date -s "2012-05-23 01:01:01" //这样可以设置全部时间 date -s "20120523 01:01:01" //这样可以设置全部时间
五、在 shell 和脚本里使用 date 命令
下面给几个例子自己体会一下。
1、在 shell 中配合其他命令使用
$ STARTTIME=`date` $ echo $STARTTIME Mon Nov 8 21:31:08 CST 2021 $ sleep 5 $ echo $STARTTIME Mon Nov 8 21:31:08 CST 2021
2、创建带有时间戳的文件
tar cfz /backup-`date +%F`.tar.gz /home/ubuntu/
3、在脚本中使用 date
命令
#!/bin/bash start=$(date +%s) nmap example.com &> /dev/null end=$(date +%s) difference=$(( end - start )) echo $difference seconds.
以上就是比较完整的 Linux date
命令使用教程。
六、搬瓦工新手教程和优惠
P.S. 马上就要双十一了,欢迎关注搬瓦工优惠通知:《2021 搬瓦工双十一优惠码猜测/搬瓦工双11优惠通知渠道》。
搬瓦工推荐方案
搬瓦工实时库存:https://stock.bwg.net
温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
选择建议:
- 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
- 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
- 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。
搬瓦工新手教程
- 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程》(推荐阅读)
- 搬瓦工购买教程:《2021 年最新搬瓦工购买教程和支付宝支付教程》
- 搬瓦工优惠码:BWHCGLUKKB
- 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群》
- 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?》
未经允许不得转载:Bandwagonhost中文网 » Linux date 命令教程:显示不同日期格式/设置系统时间等
最新评论
5211314
能不能教我 一点不会