如何在Linux bash命令中以"2022-12- 08 T15:25:30.165965Z“格式回显时间?

px9o7tmv  于 2022-12-22  发布在  Linux
关注(0)|答案(3)|浏览(95)

目前我正在编写一个bash脚本,它已经硬编码了以下日期:

2022-12-08T15:25:30.165965Z

我希望在脚本中生成该日期,并且希望它是最新的。到目前为止,我尝试了以下方法:

date '+%d-%m-%Y %H:%M:%S.%M'

其输出:

19-12-2022 12:40:13.40

我想知道有没有人知道我怎么能在时间里把T和Z字母加起来?

8oomwypt

8oomwypt1#

您可以使用:

date -u '+%d-%m-%YT%H:%M:%S.%NZ'

此处:

  • -u将打印UTC日期-时间
  • %H之前的T将打印文字T
  • %N打印纳秒值
  • %N之后的Z将打印文字Z
eufgjt7s

eufgjt7s2#

$ date -u '+%FT%T.%6NZ'
2022-12-19T15:04:34.238733Z

不过,您需要GNU date来实现纳秒级的性能。

8zzbczxx

8zzbczxx3#

只需bash使用EPOCHREALTIME变量和printf的%(fmt)T指令即可。

( IFS=.; TZ=UTC printf '%(%FT%T)T.%sZ\n' $EPOCHREALTIME )
# => 2022-12-19T14:28:33.343999Z

我使用了一个subshell,这样修改IFS就不会影响脚本的其余部分。

相关问题