linux下date命令显示的时间进行格式转换

- linux系统管理

在linux中date命令用于打印或设置系统日期和时间,当然比较常用的就是打印时间,在shell脚本中需要使用到日期、时间、时间戳等内容时都会用到它。这里记录下常用的的一些操作。


自定义显示格式

[root@imzcy ~]# date
Thu Dec  7 23:25:01 CST 2023
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S"
2023.12.07 23:25:52
[root@imzcy ~]#
[root@imzcy ~]# date +%Y%m%d_%H%M%S
20231207_232524
[root@imzcy ~]#




显示当前时间前后时间

[root@imzcy ~]# date
Thu Dec  7 23:30:24 CST 2023
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S" -d "-10seconds"
2023.12.07 23:30:15
[root@imzcy ~]#
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S" -d "-1days"
2023.12.06 23:30:37
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S" -d "-1months"
2023.11.07 23:30:48
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S" -d "-1years"
2022.12.07 23:30:54
[root@imzcy ~]#
[root@imzcy ~]# date +"%Y.%m.%d %H:%M:%S" -d +5days
2023.12.12 23:34:00
[root@imzcy ~]#




显示指定时间前后时间

显示指定日期一个月之后的日期

[root@imzcy ~]# date -d "20230420  1 months"  "+%Y-%m-%d"
2023-05-20
[root@imzcy ~]#

显示指定日期一个月之前的日期

[root@imzcy ~]# mydate=20230620
[root@imzcy ~]# date -d "$mydate  1 months ago"  "+%Y-%m-%d"
2023-05-20
[root@imzcy ~]#
[root@imzcy ~]# date -d "$mydate  1 days ago"  "+%Y-%m-%d"
2023-06-19
[root@imzcy ~]# date -d "$mydate  1 years ago"  "+%Y-%m-%d"
2022-06-20
[root@imzcy ~]#




标准时间和时间戳互转

时间戳转换为标准时间

[root@imzcy ~]# date +%s
1701963833
[root@imzcy ~]#
[root@imzcy ~]# date -d @1701963833 "+%Y.%m.%d %H:%M:%S"
2023.12.07 23:43:53
[root@imzcy ~]#
[root@imzcy ~]# mytime=1701963833
[root@imzcy ~]# date "+%Y.%m.%d %H:%M:%S" -d @$mytime
2023.12.07 23:43:53
[root@imzcy ~]#


标准时间转换为时间戳

[root@imzcy ~]# date -d "2023-12-07 23:43:53" +"%s"
1701963833
[root@imzcy ~]#