【问题标题】:What are valid input DATE formats for the (Linux) date command?(Linux) date 命令的有效输入日期格式是什么?
【发布时间】:2015-09-01 17:22:58
【问题描述】:

以下命令生成第二天的日期:

date -d "20150615 12:00 +1 day" +%Y%m%d
20150616

我想指定我自己的INPUT日期格式,比如:

2015_06_15

但是date命令不喜欢这种格式,抱怨日期无效:

date: invalid date '2015_06_15 12:00 +1 day'

可以使用这样的日期格式吗?如果是这样,我该怎么做。

【问题讨论】:

  • 请参阅:stackoverflow.com/questions/20691852/… - date 命令没有输入格式说明符,您必须将输入转换为默认情况下 date 可以理解的内容。
  • GNU date 不允许您指定输入格式;可以在here找到关于接受的完整文档。
  • 谢谢。我想知道是否可以提出在 GNU date 中添加这样一个功能的提案...

标签: linux bash date scripting


【解决方案1】:

解决方法:

x="2015_06_15"
date -d "${x//_/} 12:00 +1 day" +%Y%m%d

输出:

20150616

【讨论】:

  • 对于像我一样想知道 x//_/ 是什么意思的其他人,这被称为 zsh 手册 14.3 参数扩展中的扩展:ex.1${name/pattern/repl} ex.2 ${name/ /pattern/repl} - 将所有出现的模式“_”替换为“”,以便将输入日期截断为 20150615,这是一种可读格式。 ex.3${name:/pattern/repl}
猜你喜欢
  • 2019-07-22
  • 1970-01-01
  • 2016-05-25
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多