Linux date 命令教程:显示不同日期格式/设置系统时间等

如果想要查看 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-weeknext-weeklast-monthnext-monthlast-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 个机房任意切换
方案内存CPU硬盘流量/月带宽推荐机房价格购买
KVM
(最便宜)
1GB2核20GB1TB1GbpsDC3 CN2
DC8 ZNET
(购买后在后台迁移)
$49.99/年购买
KVM2GB3核40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5Gbps美国 DC6 CN2 GIA-E
美国 DC9 CN2 GIA
日本软银 JPOS_1
荷兰 EUNL_9
美国圣何塞 CN2 GIA
加拿大 CN2 GIA
$49.99/季度
$169.99/年
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
HK
(高端首选)
2GB2核40GB0.5TB1Gbps中国香港 CN2 GIA
日本东京 CN2 GIA
日本大阪 CN2 GIA
新加坡 CN2 GIA
$89.99/月
$899.99/年
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
购买
OSAKA2GB2核40GB0.5TB1.5Gbps日本大阪 CN2 GIA$49.99/月
$499.99/年
购买
OSAKA4GB4核80GB1TB1.5Gbps$86.99/月
$869.99/年
购买
搬瓦工优惠码:BWHCGLUKKB搬瓦工购买教程:《2024 年最新搬瓦工购买教程和支付宝支付教程

选择建议:

  • 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
  • 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
  • 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。

搬瓦工新手教程

  1. 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程(推荐阅读)
  2. 搬瓦工购买教程:《2021 年最新搬瓦工购买教程和支付宝支付教程
  3. 搬瓦工优惠码:BWHCGLUKKB
  4. 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群
  5. 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?

未经允许不得转载:Bandwagonhost中文网 » Linux date 命令教程:显示不同日期格式/设置系统时间等