如何在 shell 脚本中获取纪元时间(对于 ksh)?

问题描述 投票:0回答:2

如何在 shell 脚本(对于 ksh)中获取纪元时间? 我有兴趣获取一天开始的纪元时间(例如现在是 2011 年 7 月 28 日 ~ 14:25:00 EST,我需要午夜时间)。

ksh
2个回答
3
投票

如果您有 GNU 日期,

epoch=$( date -d 00:00 +%s )

否则,如果你有 tclsh,

epoch=$( echo 'puts [clock scan 00:00]' | tclsh )

否则,

epoch=$( perl -MTime::Local -le 'print timelocal(0,0,0,(localtime)[3..8])' )

1
投票

ksh 的

printf '%(fmt)T'
支持时间计算。例如:

$ echo ${.sh.version}
Version AJM 93u+ 2012-08-01
$ printf '%T\n' now
Sat Aug  5 20:15:58 CST 2023
$ printf '%T\n' '2 days ago'
Thu Aug  3 20:16:06 CST 2023
$ printf '%T\n' 'midnight today'
Sat Aug  5 00:00:00 CST 2023
© www.soinside.com 2019 - 2024. All rights reserved.