给定一个bash
具有值的变量2019-08-15
,是否有一些实用程序可以将该日期转换为格式August 15, 2019
?
答案1
在 Linux 或任何使用 GNU 的系统上date
:
$ thedate=2019-08-15
$ date -d "$thedate" +'%B %e, %Y'
August 15, 2019
在 macOS、OpenBSD 和 FreeBSD 上,date
默认情况下 GNU 不可用:
$ thedate=2019-08-15
$ date -j -f '%Y-%m-%d' "$thedate" +'%B %e, %Y'
August 15, 2019
该-j
选项禁用设置系统时钟,并且使用的格式字符串-f
描述了输入日期格式(应该是strptime(3)
格式字符串描述变量值使用的格式)。然后是变量的值和您希望输出的格式(应该是strftime(3)
格式字符串)。
NetBSD 用户可以使用与上面类似的东西,但没有选项-f input_fmt
,因为他们的date
实现使用parsedate(3)
。另请注意-d
指定输入日期字符串的选项:
$ thedate=2019-08-15
$ date -j -d "$thedate" +'%B %e, %Y'
August 15, 2019
date
另请参阅您系统上的手册。
答案2
假设您可以访问 GNU date
,
$ date --date="2019-08-15" "+%B %d, %Y"
August 15, 2019
检查联机帮助页日期( man date
)。