如何获取时间变量的时间戳?

如何获取时间变量的时间戳?

在我的操作系统中

date
Tue 01 Nov 2022 06:58:10 PM HKT

获取unix时间戳

date +%s
1667300297

获取UTC时间。

date -u
Tue 01 Nov 2022 10:58:08 AM UTC

如果我将一个变量指定为 UTC 时间

x=$(date -u)

那么如何获取变量的时间戳呢?

$x  +%s
bash: Tue: command not found

答案1

如果您希望当前时间为自纪元以来的秒数:

x=$(date +%s)

使用zshafterzmodload zsh/datetime或最新版本的bash,您也可以这样做x=$EPOCHSECONDS

x=$(date -u)将类似Tue 01 Nov 2022 10:58:08 AM UTCormar. 01 nov. 2022 12:05:48 UTC或 的内容存储到2022年 11月 01日 星期二 12:06:04 UTC中,具体取决于用户的区域设置以及系统之间的差异$x

获取该日期相应的纪元秒将会很困难。

对于Tue 01 Nov 2022 10:58:08 AM UTC,如果您可以访问 的 GNU 实现date,那么您很幸运,因为这是它通过其选项识别的日期格式之一-d

所以:

epoch=$(date -d "$x" +%s)

将在那里工作。你的date命令似乎不是 GNU 命令,但 GNUdate可能可以作为gdate/opt/gnu/bin/date...

相关内容