如何在bash中减去两个时间戳及其日期?

玛诺·库玛(Manoj Kumar)

我有两个变量:

A = 04.07.2019 23:29:40和B = 05.07.2019 01:15:52,我想使用bash执行算术运算C = A-B。

有人可以帮我把它们转换成整数吗?一般来说,日期每次都不同,这就是为什么不能忽略日期。

输出应以秒/分钟为单位。如果可能,采用HH:MM:SS格式。

Lu

您可以使用date转换为时间戳,即秒,减去秒,然后转换回HH:MM:SS

不幸的是,date不读取指定的格式,所以我们需要扭转DD.MM.YYYYYYYY-MM-DD

{
A="04.07.2019 23:29:40"
B="05.07.2019 01:15:52"

# Create a function to change DD.MM.YYYY HH:MM:SS to YYYY-MM-DD HH:MM:SS.
convert_date(){ printf '%s-%s-%s %s' ${1:6:4} ${1:3:2} ${1:0:2} ${1:11:8}; }

# Convert to timestamp
A_TS=$(date -d "$(convert_date "$A")" +%s)
B_TS=$(date -d "$(convert_date "$B")" +%s)

# Subtract
DIFF=$((B_TS-A_TS))

# convert to HH:MM:SS (note, that if it's more than one day, it will be wrong!)
TZ=UTC date -d @$DIFF +%H:%M:%S
}

输出:

01:46:12

使用更通用的函数减去日期:

diff_dates(){
    TS1=$(date -d "$1" +%s)
    TS2=$(date -d "$2" +%s)
    [ $TS2 -ge $TS1 ] \
        && TZ=UTC date -d @$((TS2-TS1)) +%H:%M:%S \
        || TZ=UTC date -d @$((TS1-TS2)) +-%H:%M:%S
}

convert_date(){
    printf '%s-%s-%s %s' ${1:6:4} ${1:3:2} ${1:0:2} ${1:11:8};
}

用法:

$ A="04.07.2019 23:29:40"
$ B="05.07.2019 01:15:52"
$ diff_dates "$(convert_date "$A")" "$(convert_date "$B")"
01:46:12

或如果您已经具有date-compatible日期:

$ diff_dates "2019-07-04 23:29:40" "2019-07-05 01:15:52"
01:46:12
$ diff_dates "2019-07-05 01:15:52" "2019-07-04 23:29:40"
-01:46:12

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在bash中减去两个时间戳及其日期?

来自分类Dev

如何在PHP中减去两个日期

来自分类Dev

如何在PySpark中的两个日期之间生成每小时的时间戳?

来自分类Dev

如何在 Hive 中查找两个时间戳日期之间的年数?

来自分类Dev

减去AWS Athena中的两个时间戳列

来自分类Dev

Influxdb - 从两个后续时间戳中减去数据

来自分类Dev

如何读取时间戳以及如何减去两个时间戳?

来自分类Dev

如何读取时间戳以及如何减去两个时间戳?

来自分类Dev

如何检查两个“日期时间”时间戳之间的“日期时间”时间戳是否

来自分类Dev

如何使用python减去两个日期时间对象

来自分类Dev

如何在python 2.7中减去两个日期并获取日期

来自分类Dev

如何减去两个日期列并计算SQL Server中的持续时间

来自分类Dev

如何在Codeigniter中减去两个日期(从数据库的2列中)

来自分类Dev

计算bash中两个时间戳之间的差异

来自分类Dev

如何在Perl中相互减去两个HH:MM:SS时间?

来自分类Dev

如何在javascript中减去两个时间字符串(HH:MM)?

来自分类Dev

如何在PHP中减去两个没有星期天的日期

来自分类Dev

如何在 Android 中减去两个日期选择器?

来自分类Dev

如何使用Bash在两个时间戳之间搜索文件中的行

来自分类Dev

如何使用Bash在两个时间戳之间搜索文件中的行

来自分类Dev

如何减去两个时间值?

来自分类Dev

如何获得以分钟为单位减去两个时间戳的结果?

来自分类Dev

如何用SQL命令减去两个时间戳以获取分钟数

来自分类Dev

在Oracle中减去两个日期

来自分类Dev

在 Kibana 中减去特定时间戳的两个值

来自分类Dev

如何在oracle中两个时间戳之间选择记录

来自分类Dev

如何在bigquery中获得两个时间戳之间的差异(以小时为单位)

来自分类Dev

如何在 JavaScript 中获取两个时间戳之间的差异?

来自分类Dev

如何在Android中减去两个日历对象

Related 相关文章

  1. 1

    如何在bash中减去两个时间戳及其日期?

  2. 2

    如何在PHP中减去两个日期

  3. 3

    如何在PySpark中的两个日期之间生成每小时的时间戳?

  4. 4

    如何在 Hive 中查找两个时间戳日期之间的年数?

  5. 5

    减去AWS Athena中的两个时间戳列

  6. 6

    Influxdb - 从两个后续时间戳中减去数据

  7. 7

    如何读取时间戳以及如何减去两个时间戳?

  8. 8

    如何读取时间戳以及如何减去两个时间戳?

  9. 9

    如何检查两个“日期时间”时间戳之间的“日期时间”时间戳是否

  10. 10

    如何使用python减去两个日期时间对象

  11. 11

    如何在python 2.7中减去两个日期并获取日期

  12. 12

    如何减去两个日期列并计算SQL Server中的持续时间

  13. 13

    如何在Codeigniter中减去两个日期(从数据库的2列中)

  14. 14

    计算bash中两个时间戳之间的差异

  15. 15

    如何在Perl中相互减去两个HH:MM:SS时间?

  16. 16

    如何在javascript中减去两个时间字符串(HH:MM)?

  17. 17

    如何在PHP中减去两个没有星期天的日期

  18. 18

    如何在 Android 中减去两个日期选择器?

  19. 19

    如何使用Bash在两个时间戳之间搜索文件中的行

  20. 20

    如何使用Bash在两个时间戳之间搜索文件中的行

  21. 21

    如何减去两个时间值?

  22. 22

    如何获得以分钟为单位减去两个时间戳的结果?

  23. 23

    如何用SQL命令减去两个时间戳以获取分钟数

  24. 24

    在Oracle中减去两个日期

  25. 25

    在 Kibana 中减去特定时间戳的两个值

  26. 26

    如何在oracle中两个时间戳之间选择记录

  27. 27

    如何在bigquery中获得两个时间戳之间的差异(以小时为单位)

  28. 28

    如何在 JavaScript 中获取两个时间戳之间的差异?

  29. 29

    如何在Android中减去两个日历对象

热门标签

归档