我有一些特定日期格式的字符串,我想使用 GNU date 命令(coreutils 8.20)处理这些字符串。我可以使用 +FORMAT 字符串获取输出日期,但不能理解使用相同字符串输入的字符串。我很确定我遗漏了一些明显的东西。是什么赋予了?
teggl@mckinley { ~/scripts }$ date +%Y%m%dT%H%M%S
20131202T182052
teggl@mckinley { ~/scripts }$ date --date="20131202T182052" +%Y%m%dT%H%M%S
date: invalid date ‘20131202T182052’
Run Code Online (Sandbox Code Playgroud)
注意:我不是在寻找 awk-y 字符串解析,我需要 date 来理解输入的日期,所以它知道它是否有效(例如日期 20140231T120000 是不可能的)。
根据手册页:
--date=STRING 是一种大多数自由格式的人类可读日期字符串,例如“Sun, 29 Feb 2004 16:21:42 -0800”或“2004-02-29 16:21:42”甚至“下周四” . 日期字符串可能包含指示日历日期、时间、时区、星期几、相对时间、相对日期和数字的项目。空字符串表示一天的开始。日期字符串格式比此处容易记录的更复杂,但在信息文档中进行了完整描述。
“T”似乎混淆了它。这有效:
$ date --date="2013-12-02 18:20:52" +%Y%m%dT%H%M%S
20131202T182052
Run Code Online (Sandbox Code Playgroud)
输出格式与输入格式无关。
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |