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

时间:2011-07-28 18:27:37

标签: ksh

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

$ printf '%T\n' now
Mon Mar 18 15:11:46 CST 2013
$ printf '%T\n' '2 days ago'
Sat Mar 16 15:11:55 CST 2013
$ printf '%T\n' 'midnight today'
Mon Mar 18 00:00:00 CST 2013
$