date命令计算出系统启动时间

简介: 1 date简介在linux 中date命令有很多用法,本文简单介绍一下 -d 参数的用法。

1 date简介

在linux 中date命令有很多用法,本文简单介绍一下 -d 参数的用法。

date -d   //显示字符串所指的日期与时间。字符串前后必须加上双引号。
 例如:
 date -d “-1day”   //前一天
 date -d “1day”    //后一天
复制代码


指定日期的显示格式:

date <+时间日期格式>
 例如:
 [root@yuji ~]# date +"%Y-%m-%d" 
 2022-05-01
 [root@yuji ~]# date +"%Y%m%d"
 20220501
复制代码


日期格式:

格式 作用
%Y 完整年份 (0000~9999)
%y 年份的最后两位数字 (00~99)
%m 月份 (01~12)
%d 日 (01~31)
%W 一年中的第几周 (00~53) (以 Monday 作为一周的第一天)
%U 一年中的第几周 (00~53) (以 Sunday 作为一周的第一天)
%w 一周中的第几天 (0~6)
%D 直接显示日期 (mm/dd/yy)
%x 直接显示日期 (mm/dd/yy)
%B 月份 (January~December)
%b 月份 (Jan~Dec)
%A 星期几 (Sunday~Saturday)
%a 星期几 (Sun~Sat)
%F 直接显示日期,相当于"%Y-%m-%d"(yyyy-mm-dd)


时间格式:

格式 作用
%H 小时(00~23)
%M 分钟(00~59)
%S 秒(00~59)
%X 相当于 %H:%M:%S
%T 直接显示时间 (24 小时制)
%p 显示本地 AM 或 PM
%Z 显示时区
%k 小时(0~23)
%l 小时(1~12)
%r 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数


2 获得某一天的时间:

示例1:

[root@yuji ~]# date
 2022年 05月 01日 星期日 22:51:46 CST
 [root@yuji ~]# date +"%Y%m%d"
 20220501
 [root@yuji ~]# date -d "-1 day" +"%Y%m%d"
 20220430
 [root@yuji ~]# date -d "1 day" +"%Y%m%d"
 20220502
复制代码


网络异常,图片无法展示
|


示例2:

[root@yuji ~]# date
 2022年 05月 01日 星期日 20:55:14 CST
 [root@yuji ~]# date +"%Y%m%d"    //当前日期
 20220501
 [root@yuji ~]# date +"%Y%m01"    //本月第一天
 20220501
 #上个月最后一天(本月第一天减1天)
 [root@yuji ~]# date -d "$(date +"%Y%m01") -1day" +"%Y%m%d"    
 20220430
 #上个月倒数第3天(本月第一天减3天)
 [root@yuji ~]# date -d "$(date +"%Y%m01") -3 day" +"%Y%m%d"   
 20220428
 #下个月第一天
 [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01")"   
 2022年 06月 01日 星期三 00:00:00 CST
 [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01")" +"%Y%m%d" 
 20220601
 #本月最后一天(下个月第一天减1天)
 [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01") -1 day" +"%Y%m%d"  
 20220531
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3 获得多少秒之前的时间:

[root@yuji ~]# date -d "2 day ago" +"%Y%m%d"   //获得2天前的时间
 20220429
 [root@yuji ~]# date -d "10 day ago" +"%Y%m%d"  //获得10天前的时间
 20220421
 [root@yuji ~]# date -d "10 second ago" +"%Y%m%d"  //获得10秒前的时间
 20220501
 [root@yuji ~]# date -d "10 second ago" +"%Y%m%d %H:%M:%S"  //获得10秒前的时间,显示具体的时分秒
 20220501 22:08:39
复制代码


网络异常,图片无法展示
|


4 查看系统启动时间:

[root@yuji ~]# cat /proc/uptime
 29602.31 29039.95
 #第一列输出的是,系统启动到现在的时长(以秒为单位)
 #第二列输出的是,系统空闲的时长(以秒为单位)
复制代码


网络异常,图片无法展示
|


5 通过date命令计算出系统启动时间(本次系统开机时间):

[root@yuji ~]# cat /proc/uptime
 31761.98 31117.16
 [root@yuji ~]# awk -F. '{print $1}' /proc/uptime
 31763
 [root@yuji ~]# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y%m%d %H:%M:%S"
 20220501 13:59:21
复制代码


网络异常,图片无法展示
|


相关文章
|
消息中间件 算法 Java
Flink流式处理百万数据量CSV文件(上)
Flink流式处理百万数据量CSV文件(上)
685 0
Flink流式处理百万数据量CSV文件(上)
|
7月前
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
2808 1
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
1127 1
Maven——创建 Spring Boot项目
|
C语言
C语言的三元运算符
C语言的三元运算符
711 2
|
机器学习/深度学习 存储 缓存
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
介绍了机器学习中的几种集成学习算法,包括随机森林、AdaBoost、梯度提升决策树(GBDT)和XGBoost,解释了它们的概念、优缺点、算法过程以及系统设计。
2065 5
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
|
缓存 人工智能 PyTorch
LMDeploy 部署 VLMs 的方法与探讨
LMDeploy 部署 VLMs 的方法与探讨 LMDeploy 是一个高效且友好的大型语言模型(LLMs)和视觉-语言模型(VLMs)部署工具箱,由上海人工智能实验室模型压缩和部署团队开发,涵盖了模型量化、离线推理和在线服务等功能。
LMDeploy 部署 VLMs 的方法与探讨
|
Java Linux Docker
CentOS7 Docker 安装,配置国内镜像
CentOS7 Docker 安装,配置国内镜像
2709 2
|
存储 NoSQL 算法
Redis 集群模式搭建
Redis 集群模式搭建
424 5
|
SQL 存储 关系型数据库
influxdb常用sql总结
influxdb常用sql总结
1322 1
|
存储 分布式计算 监控
基于IoTDB 平台的学习和研究
Apache IoTDB是专为物联网设计的高性能时序数据库,适用于大规模数据存储、高速数据摄入和复杂分析。其特点是轻量级架构、高性能、丰富的功能集,并与Hadoop、Spark和Flink集成,支持边缘计算和云端部署。关键功能包括最新点查询、灵活部署、数据压缩和安全机制。此外,IoTDB在工业物联网场景中有广泛应用,如设备监控和智慧城市。该数据库易于使用,支持SQL-like查询,并提供与Spring Boot的整合示例。
1275 3