我想把下面的字符串转换成时间戳,我已经把它转换成了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