在我的操作系统中
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)
使用zsh
afterzmodload zsh/datetime
或最新版本的bash
,您也可以这样做x=$EPOCHSECONDS
。
x=$(date -u)
将类似Tue 01 Nov 2022 10:58:08 AM UTC
ormar. 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
...