要计算以下格式YYYYMMDDHHMMSSXXX的时间差(以毫秒为单位). Xxx表示毫秒.
20230101232324548-20230101232324500=48
我正在try 在Linux中使用expr a-b,但它不能为少数记录提供正确的结果. 无论是在Linux中还是在EXCEL中,我们都可以计算差额.任何可能的方法都会有帮助.
要计算以下格式YYYYMMDDHHMMSSXXX的时间差(以毫秒为单位). Xxx表示毫秒.
20230101232324548-20230101232324500=48
我正在try 在Linux中使用expr a-b,但它不能为少数记录提供正确的结果. 无论是在Linux中还是在EXCEL中,我们都可以计算差额.任何可能的方法都会有帮助.
很抱歉之前的回答很糟糕.
Bash脚本:diffdate.sh
#! /usr/bin/env bash
D1="$1"
D2="$2"
# Date conversion from "YYYYMMDDHHMMSSNNN" to "YYYY-MM-DDTHH:MM:SS" (ISO8601)
D1D="${D1:0:4}-${D1:4:2}-${D1:6:2}T${D1:8:2}:${D1:10:2}:${D1:12:2}"
# Date conversion from "YYYYMMDDHHMMSSNNN" to "NNN"
D1N="${D1:14:3}"
# ISO date conversion to milliseconds from 1970-01-01 + "NNN"
D1S=$(date -d "${D1D}" +"%s")${D1N}
# Date conversion from "YYYYMMDDHHMMSSNNN" to "YYYY-MM-DDTHH:MM:SS" (ISO8601)
D2D="${D2:0:4}-${D2:4:2}-${D2:6:2}T${D2:8:2}:${D2:10:2}:${D2:12:2}"
# Date conversion from "YYYYMMDDHHMMSSNNN" to "NNN"
D2N="${D2:14:3}"
# ISO date conversion to milliseconds from 1970-01-01 + "NNN"
D2S=$(date -d "${D2D}" +"%s")${D2N}
# Diff
DIFFS=$(( D1S - D2S ))
echo "${DIFFS}"
可使用以下命令执行:
> chmod +x diffdate.sh
按如下方式执行:
> ./diffdate.sh 20230101232324548 20230101232324500
48
> ./diffdate.sh 20230101232324648 20230101232324500
148
> ./diffdate.sh 20230101232324548 20230101232324600
-52
结果以毫秒为单位. 您想要几分钟、几小时、几天的结果吗?