我想在脚本中格式化 bash 中的日期。
格式为:2016-10-05T12:18:36.890+02:00
我目前正在使用: $(date +%Y%m%d%H%M%S)
知道如何做到这一点吗?
小智 7
您正在寻找的是将日期格式化为 ISO 8601 格式。
$(date -Is)
Run Code Online (Sandbox Code Playgroud)
I
用于 ISO 格式,s
用于日期时间。
使用 GNU date
:
$ date +%FT%T.%3N%:z
2017-06-30T13:00:54.566+01:00
Run Code Online (Sandbox Code Playgroud)
使用bash
内置函数,您可以获得的最接近的是:
$ printf -v date '%(%FT%T%z)T' -1
$ printf '%s\n' "${date%??}:${date: -2}"
2017-06-30T13:00:54+01:00
Run Code Online (Sandbox Code Playgroud)
asbash
不支持亚秒级精度。
使用最新版本zsh
:
$ zmodload zsh/datetime
$ strftime -s date '%FT%T.%3.%z'
$ printf '%s\n' $date[1,-3]:$date[-2,-1]
2017-06-30T13:00:54.566+01:00
Run Code Online (Sandbox Code Playgroud)