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

发布于 2024-11-26 17:51:20 字数 98 浏览 0 评论 0原文

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

How to get epoch time in shell script (for ksh)?
I am interested in getting epoch time for the start of day (so e.g. now is July 28th, 2011 ~ 14:25:00 EST, I need time at midnight).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不一样的天空 2024-12-03 17:51:20

如果你有 GNU date,

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])' )

If you have GNU date,

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

Otherwise, if you have tclsh,

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

Otherwise,

epoch=$( perl -MTime::Local -le 'print timelocal(0,0,0,(localtime)[3..8])' )
假装爱人 2024-12-03 17:51:20

ksh 的 printf '%(fmt)T'(fmt) 部分是可选的)支持时间计算。例如:

$ 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

ksh's printf '%(fmt)T' (the (fmt) part is optional) supports time calculating. For example:

$ 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文