设想:
我正在将文件中的日期值提取到变量中,默认情况下它采用 DD-MM-YYYY 格式。我必须从系统日期中减去这个日期。如果我的两个日期都采用 DD-MM-YYYY 格式,则减法会给出不正确的结果。所以我在谷歌上读了一点,决定将两个日期都格式化为 YYYY-MM-DD,因为这将在减法后给出正确的值。我已经在 YYYY-MM-DD 中成功格式化了系统日期,但是很难将从文件中获得的日期转换为 YYYY-MM-DD 格式。
以下解决方案适用于个位数日期:
$ date -d $(sed "s/-/\//g" <<< '9-2-1832') +%Y-%m-%d
Output : 1832-09-02
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将日期转换为两位数时,如下所示:
$ date -d $(sed "s/-/\//g" <<< '19-07-2021') +%Y-%m-%d
Run Code Online (Sandbox Code Playgroud)
我得到输出
Invalid date '19/07/2021'
Run Code Online (Sandbox Code Playgroud)
在哪里:
19 - is Date of a month
07 - is Month i.e. July in this case.
2021 - is Year
Run Code Online (Sandbox Code Playgroud)
所需的输出为 -> 2021-07-19
我正在使用日期版本为 RH Linux:date (GNU coreutils) 8.22
请帮助提供上述问题的解决方案。