我写了一个处理日期的 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 等。