date命令不会将date命令返回的格式转换为时间戳

时间:2014-07-15 11:23:08

标签: linux bash shell date busybox

linux的date命令返回以下日期格式

root@root:~# date
Sat Jun 14 06:36:42 CEST 2014

如果我添加+%s

,则可以打印当前日期时间戳
root@root:~# date +%s
1402720624

现在如果我想打印date命令返回的日期的时间戳,我会收到以下错误

root@Inteno:~# date -d"Sat Jun 14 06:36:42 CEST 2014" +%s
date: invalid date 'Sat Jun 14 06:36:42 CEST 2014'

如何让日期返回日期格式Sat Jun 14 06:36:42 CEST 2014的时间戳?

注意:我使用的是BusyBox v1.19.4中的日期

1 个答案:

答案 0 :(得分:3)

不幸的是,busybox的日期有局限性,但如果你可以考虑使用时间戳,你可以这样做:

TS=$(date '+%s')
date -d "@${TS}"

如果CEST是您当前的当地时间,您可以执行以下操作:'

DATE=$(date)
date -d "$(echo "$DATE" | cut -d ' '  -f 2,3,4,6)" '+%s'

由于删除时区仍然适用。