计算时间差

原创 2016年08月31日 11:38:42

因为做kettle数据抽取,常常要知道执行消耗了多少时间,而自己对shell只是知道一些基础的东西,于是网上查资料,顺便进行下总结:

思路:

1.将时间date转变为时间戳(即从1970-01-01 00:00:00 开始算起的秒数)

2.时间戳之间就可以直接进行运算了

3.运算得到的结果是秒,可以进一步运算除以60去得到分钟,小时,天数等

3.1.也可以将秒转化为date型:$(date +%Y-%m-%d' '%H:%M:%S -d "1970-01-01 UTC $t1 seconds"),注意,这里得到的是从1970年开始算起的日期,要算实际消耗的年月日,对1970-01-01进行运算便可


#!/bin/bash

_time1=$(date +%Y-%m-%d' '%H:%M:%S -d "2015-08-31 01:01:10")
_time2=$(date +%Y-%m-%d' '%H:%M:%S -d "2016-07-30 09:38:30")

echo $_time1
echo $_time2

#得到时间戳
t1=$(date +%s -d "$_time1")
t2=$(date +%s -d "$_time2")

echo t1
echo t2
echo $(($t2-$t1))

#得到时间差
t3=$(($t2-$t1))

#将时间戳转换为常规日期显示
t4=$(date +%Y-%m-%d' '%H:%M:%S -d "1970-01-01 UTC $t3 seconds")
echo $t4

#得到年-月-日,时:分:秒
ydate=$(date +%Y -d "$t4")
mdate=$(date +%m -d "$t4")
ddate=$(date +%d -d "$t4")
htime=$(date +%H -d "$t4")
mtime=$(date +%M -d "$t4")
stime=$(date +%S -d "$t4")

_year=$(($ydate-1970))
_month=$(($mdate-1))
_day=$(($ddate-1))

echo "start time $_time1"
echo "end time $_time2"

#输出最终想要的格式
echo $_year-$_month-$_day' '$(date +%H:%M:%S -d "1970-01-01 UTC $t3 seconds")




版权声明:本文为博主原创文章,未经博主允许不得转载。

精准时间差计算

  • 2015年05月28日 15:45
  • 214KB
  • 下载

jQuery计算时间差和阴阳历转换

  • 2016年01月13日 14:34
  • 6KB
  • 下载

Java8中计算日期时间差

一.简述在Java8中,我们可以使用以下类来计算日期时间差异:1.Period 2.Duration 3.ChronoUnit 二.Period类主要是Period类方法getYears(),getM...

计算时间差

  • 2013年05月07日 12:05
  • 13KB
  • 下载

js计算时间差

  • 2015年05月06日 16:43
  • 1KB
  • 下载

C# TimeSpan 计算时间差(时间间隔)

TimeSpan 结构  表示一个时间间隔。 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 说明: 1.DateTime值类型代表了一个从公元0001年1月...
  • cbbbc
  • cbbbc
  • 2015年12月08日 15:41
  • 551

自写函数时间差计算函数

  • 2011年10月09日 17:49
  • 9KB
  • 下载

java中计算两个时间差

javaz中对日期时间的处理比较多,代码中列出了3中日期时间计算差值的方法。Gmail社区%KaA(Q2Z8TPo 4Q\,VBh M"cIeQ L0比如:现在是2004-03...

sqlserver 计算数据库时间差

  • 2017年10月10日 16:49
  • 629B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算时间差
举报原因:
原因补充:

(最多只允许输入30个字)