![如何获取时间变量的时间戳?](https://linux22.com/image/212805/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%97%B6%E9%97%B4%E5%8F%98%E9%87%8F%E7%9A%84%E6%97%B6%E9%97%B4%E6%88%B3%EF%BC%9F.png)
在我的操作系统中
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
...