如何获取格式化日期字符串的格式?

如何获取格式化日期字符串的格式?

我写了一个处理日期的 shell 脚本;它从参数中获取一个或多个日期字符串,然后输出结果。说,

$ datecalc 06/27/2021 01/01/2000
05/10/2005

该脚本使用 date(1) 命令将给定日期转换为纪元时间,这没有问题。问题是它以静态格式输出结果(现在是 %D)。所以我的主要问题是:有没有办法获取日期字符串的格式?

例如,我正在寻找执行以下操作的脚本/函数/管道/任何内容:

$ getformat "06/27/2021"
%m/%d/%Y
$ getformat "21/06/27"
%y/%m/%d
$ getformat "June 27"
%B %d

这样我就可以对脚本输出执行如下操作:

date -d "$result" +$(getformat "$1")

我已经查过了日期工具看看它的任何程序是否可以完成这项工作,但似乎并非如此。不过,我不介意使用一个或多个 dateutils 程序来实现这一目标。

答案1

回答:不,那里没有

因为正如 @Kamil 暗示的那样,给定一个不明确的日期01/01/01,无法确定这是 dd/mm/yy、mm/dd/yy 还是 yy/mm/dd 等。

相关内容