SHELL:如何将字符串转换为时间戳



我想把下面的字符串转换成时间戳,我已经把它转换成了Sheets,但我想自动化这个过程。

发件人: 38740

TO: 00:38.74

谷歌工作表中,我插入公式并完美地工作

=TEXT(A2/86400000,"mm:ss.00")

shell(bash(中:

awk "BEGIN {print 38740/86400000}"

有一种方法可以使用shell来做到这一点,或者我需要使用一些更高级的编程语言?

另一种Bash方法

t=$(bc <<< 'scale=2; 38740/1000')
d=$(date -d @"$t" --utc '+%M:%S.%N')
echo "${d:0:9}"
00:38.740

使用bash,使用内置算术

str=38740
(( mins = str / 60000, str %= 60000, secs = str / 1000, msec = str % 1000 ))
printf -v duration "%02d:%02d.%03d" "$mins" "$secs" "$msec"
echo "$duration"
# => 00:38.740

封装到一个函数中:

milliseconds_to_duration () {
local mins secs msec
local tmp=$1
(( mins = tmp / 60000, tmp %= 60000, secs = tmp / 1000, msec = tmp % 1000 ))
printf "%02d:%02d.%03dn" "$mins" "$secs" "$msec"
}

然后

$ milliseconds_to_duration 38740
00:38.740

相关内容

  • 没有找到相关文章

最新更新