shell脚本:时间处理

这篇具有很好参考价值的文章主要介绍了shell脚本:时间处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、时间获取

1、现在时间

date -d now

date

2、获取当前时间的日期

date +"%Y-%m-%d"

date +"%F"

3、获取当前的时间的各指标

date +%H  #小时

date +%M  #分钟

date +%S  #秒

date +%T  #时间

date +%w  #星期

date -d "-1 day" +%F  # 前一天

4、获取昨天

date -d yesterday  # 这样是未经过任何的格式化,比较难看

date -d yesterday +"%Y%m%d"  # 这样是经过格式化的

5、获取明天

date -d tomorrw

date -d tomorrw +"%Y%m%d"

date +%Y%m%d -d "+1 day"

date +"%Y%m%d" -d '+1 day'  # 这里引号不是必须的

date +%Y%m%d --date "+1 day"

date +"%Y%m%d" --date '+1 day'

6、获取本月

date +"%Y%m"

7、获取下月

date -d "1month" +"%Y%m"

8、获取上月

date -d "-1month" +"%Y%m"

9、计算指定日期的前一天的日期

date -d "yesterday 20150401 " +%Y%m%d

10、如果获取当前日期的前一天

date -d "yesterday" +%Y%m%d

11、计算指定日期的前几天(例如计算20190716的前10天),如果是负数的话,则会往前数

date -d "10 day ago 20190716" +%Y%m%d

date -d "10 day ago 2019-07-16" +%Y%m%d

12、计算当前日期的前几天(例如计算当前日期的前10天),如果是负数的话,则会往前数

date -d "10 day ago" +%Y%m%d

13、获取指定小时点之后的时间

date -d "20190716 12 3 hour" +"%Y%m%d%H"

表示2019年07月16日12点 向后移动三个小时的时间,运行结果为:2019071615
14、获取当前时间点之后的几小时的时间点

date -d "3 hour" +"%Y%m%d%H"

表示获取当前时间点3小时之后的时间,结果精确到小时
15、获取指定时间点之后几分钟

date -d "20190716 21:15 10 minute" +"%Y%m%d%H%M"

表示2019年07月16日21时15分在10分钟的时间点,精确到分
16、获取当前时间点之后的几分钟

date -d "10 minute" +"%Y%m%d%H%M"

二、时间转换

1、获取当前时间

date_time=`date +"%Y%m%d%H%M"`
//截取想要的时间
date_d=${date_time:0:8}
date_H=${date_time:8:2}
date_M=${date_time:10:2}

2、5分钟之前

date_5_ago=`date -d "${date_d} ${date_H}:${date_M}  5 minute ago" +"%Y%m%d%H%M"`   //计算已知时间的前XX分钟

3、将时间转换为时间戳

time1=`date -d "$date_5_ago" +%s `
time2=`date -d "$date_time" +%s`

4、时间戳相减

time=$(($time1 - $time2))

5、将时间戳转换为分钟

time_c=`date  -d @$time "+%M"`

6、计算执行时间

starttime=`date +'%Y-%m-%d %H:%M:%S'`
//执行代码
endtime=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$starttime" +%s)
end_seconds=$(date --date="$endtime" +%s)
echo "本次运行时间: "$((end_seconds-start_seconds))"s"

三、时间计算

1、时间加减
这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒。
如:1990-01-01 01:01:01 加上 1小时 20分
处理方法:
(1)将基础时间转为时间戳

time1=$(date +%s -d '1990-01-01 01:01:01')
echo $time1
631126861 【时间戳】

(2)将增加时间变成秒

[root localhost ~]# time2=$((1*60*60+20*60))
[root localhost ~]# echo $time2
4800

(3)两个时间相加,计算出结果时间

time1=$(($time1+$time2))
time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");
echo $time1
1990-01-01 02:21:01

2、时间差计算方法
如:2010-01-01 与 2009-01-01 11:11:11 时间差
原理:
  同样转成时间戳,然后计算天,时,分,秒

time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));
echo time1

将time1 / 60 秒,就变成分了。

四、date详解

1、使用权限 :
  所有使用者
2、使用方式 :

date [-u] [-d datestr] [-s datestr] [—utc] [—universal] [—date=datestr] [—set=datestr] [—help] [—version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

3、说明 :
  date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
(1)时间方面 :

标记 含义
% 印出
% %n 下一行
%t 跳格
%H 小时(00…23)
%I 小时(01…12)
%k 小时(0…23)
%l 小时(1…12)
%M 分钟(00…59)
%p 显示本地 AM 或 PM
%r 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00…61)
%T 直接显示时间 (24 小时制)
%X 相当于 %H:%M:%S
%Z 显示时区

(2)日期方面 :

标记 含义
%a 星期几 (Sun…Sat)
%A 星期几 (Sunday…Saturday)
%b 月份 (Jan…Dec)
%B 月份 (January…December)
%c 直接显示日期和时间
%d 日 (01…31)
%D 直接显示日期 (mm/dd/yy)
%h 同 %b
%j 一年中的第几天 (001…366)
%m 月份 (01…12)
%U 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
%w 一周中的第几天 (0…6)
%W 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
%x 直接显示日期 (mm/dd/yy)
%y 年份的最后两位数字 (00.99)
%Y 完整年份 (0000…9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss]
其中 MM 为月份,
DD 为日,
hh 为小时,
mm 为分钟,
CC 为年份前两位数字,
YY 为年份后两位数字,
ss 为秒数
把计 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号文章来源地址https://www.toymoban.com/news/detail-426351.html

到了这里,关于shell脚本:时间处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux命令-shell】虚拟机中创建shell脚本、查看当前路径、执行脚本

    目录 一、创建shell脚本 二、查看当前的路径 三、执行脚本 一、创建shell脚本 shell脚本的特点 提前将可执行的命令语句写入一个文件中 顺序执行 解释器逐行解释代码 常见的脚本有:shell、python、PHP...... 注:用什么解释器就是什么脚本 编写shell脚本: 步骤: 1、新建文件 2、

    2024年02月05日
    浏览(69)
  • (19)Shell脚本【echo命令:输出当前日期】

    1.1 Shell脚本简介 1.2 Shell脚本文件 1.3 Shell脚本作用 1.4 Shell运行环境 1.5 Shell脚本【echo命令:输出当前日期】 1.6 结束语 A、Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理,shell是一个命令解释器,是一个工具箱, Shell 将相应的操作传

    2023年04月24日
    浏览(65)
  • Java获取当前时间

    通过Date类来获取当前时间,比较常用。需要使用Java.util.Date类,速度一般。 通过System类中的currentTimeMillis方法来获取当前时间,无需导入类,速度最快。 此方法优势是不受时区的影响,但是得到结果是时间戳的格式 可以通过代码将时间戳转化为我们可以理解的格式: 转换后

    2024年02月16日
    浏览(44)
  • SqlServer 获取当前系统时间

    SqlServer 获取当前系统时间 获取当前系统时间 SELECT CONVERT(varchar(12),DATEADD(MONTH,0,GETDATE()),23) time –其中用到了DATEADD函数,参数0就代表今天。 CONVERT函数中的23代表样式 –上述结果如下 2. 在存储过程中将系统时间按赋值给变量 declare @time varchar(100) SELECT @time=CONVERT(varchar(12),DATEAD

    2024年02月12日
    浏览(44)
  • Python获取当前时间

    打印结果: 打印结果:    打印结果: 2022-12-03 18:01:04   

    2024年02月13日
    浏览(46)
  • java获取当前系统时间

      在Java中,可以使用以下几种方法获取当前系统时间: 方法1:使用java.util.Date类 ```java import java.util.Date; public class Main { public static void main(String[] args) { Date date = new Date(); System.out.println(\\\"当前时间:\\\" + date); } } ``` 方法2:使用java.time.LocalDateTime类(推荐,自Java 8引入

    2024年02月11日
    浏览(68)
  • vue封装-获取当前时间

    在开发时,经常遇到转换时间戳的问题,这里封装了一个方法,方便使用。

    2024年02月13日
    浏览(72)
  • Qt - 获取系统当前时间

    Qt获取系统当前时间的四种方法(一般使用第一种或者第二种) //current_date字符串结果为”2016.05.20 12:17:01.445 周五” 其中时间的显示格式可灵活配置,此处简单说明本实例中用到的部分: yyyy表示年;MM表示月;dd表示日; hh表示小时;mm表示分;ss表示秒;zzz表示毫秒;ddd表示

    2024年02月06日
    浏览(89)
  • Python 获取当前系统时间

    在有的时候,系统不能联网,需要获取系统的当前实现,此时需要python的datetime库。 一、使用方法 1. 导入库:import datetime 2.获取当前日期和时间:now_time = datetime.datetime.now() 3.格式化成我们想要的格式:.strftime() 二、示例 #输出 230215 三、格式参数 %a 星期几的简写 %A 星期几的

    2024年02月16日
    浏览(37)
  • Python获取当前时间日期

    时间日期类型在Python中主要有两个模块:time模块 和 datetime模块 time模块: 是基于Unix Timestamp(时间戳)实现的,所能表述的范围被限定在1970-2038年之间; 时间戳: 是指格林尼治时间1970年01月01日00时00分00秒起至现在的总秒数,结果是一个浮点数。 2.1 获取当前时间戳 示例:

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包