目前我正在编写一个bash脚本,它已经硬编码了以下日期:
2022-12-08T15:25:30.165965Z
我希望在脚本中生成该日期,并且希望它是最新的。到目前为止,我尝试了以下方法:
date '+%d-%m-%Y %H:%M:%S.%M'
其输出:
19-12-2022 12:40:13.40
我想知道有没有人知道我怎么能在时间里把T和Z字母加起来?
8oomwypt1#
您可以使用:
date -u '+%d-%m-%YT%H:%M:%S.%NZ'
此处:
-u
%H
T
%N
Z
eufgjt7s2#
$ date -u '+%FT%T.%6NZ' 2022-12-19T15:04:34.238733Z
不过,您需要GNU date来实现纳秒级的性能。
date
8zzbczxx3#
只需bash使用EPOCHREALTIME变量和printf的%(fmt)T指令即可。
%(fmt)T
( IFS=.; TZ=UTC printf '%(%FT%T)T.%sZ\n' $EPOCHREALTIME ) # => 2022-12-19T14:28:33.343999Z
我使用了一个subshell,这样修改IFS就不会影响脚本的其余部分。
3条答案
按热度按时间8oomwypt1#
您可以使用:
此处:
-u
将打印UTC日期-时间%H
之前的T
将打印文字T
%N
打印纳秒值%N
之后的Z
将打印文字Z
eufgjt7s2#
不过,您需要GNU
date
来实现纳秒级的性能。8zzbczxx3#
只需bash使用EPOCHREALTIME变量和printf的
%(fmt)T
指令即可。我使用了一个subshell,这样修改IFS就不会影响脚本的其余部分。