Village Asked: 2019-08-15 16:51:52 +0800 CST2019-08-15 16:51:52 +0800 CST 2019-08-15 16:51:52 +0800 CST 如何在命令行中将 2019-08-15 日期格式转换为 2019 年 8 月 15 日? 772 给定一个bash带有值的变量2019-08-15,是否有一些实用程序可以将该日期转换为格式August 15, 2019? command-line date 2 个回答 Voted Best Answer Kusalananda 2019-08-15T23:18:06+08:002019-08-15T23:18:06+08:00 在 Linux 或任何使用 GNU 的系统上date: $ thedate=2019-08-15 $ date -d "$thedate" +'%B %e, %Y' August 15, 2019 在 macOS、OpenBSD 和 FreeBSD 上,默认情况下 GNUdate不可用: $ 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您系统上的手册。 Janka 2019-08-15T16:59:00+08:002019-08-15T16:59:00+08:00 假设您可以访问 GNU date,那么一些东西 $ date --date="2019-08-15" "+%B %d, %Y" August 15, 2019 检查日期( man date) 的联机帮助页。
在 Linux 或任何使用 GNU 的系统上
date
:在 macOS、OpenBSD 和 FreeBSD 上,默认情况下 GNU
date
不可用:该
-j
选项禁用设置系统时钟,使用的格式字符串-f
描述输入日期格式(应该是strptime(3)
描述变量值使用的格式的格式字符串)。然后遵循变量的值和您希望输出的格式(应该是strftime(3)
格式字符串)。NetBSD 用户可能会使用与上述类似但没有
-f input_fmt
选项的东西,因为他们的date
实现使用parsedate(3)
. 另请注意-d
指定输入日期字符串的选项:另请参阅
date
您系统上的手册。假设您可以访问 GNU
date
,那么一些东西检查日期(
man date
) 的联机帮助页。