将天数转换为日期

将天数转换为日期

我想问Linux下如何将0000-00-00的天数转换为日期?

(注:我从纪元转换器它可以被转换。例如,737887转换为2020年4月7日,即从0000-00-00到今天(2020年4月7日星期二)有737887天。)

答案1

在许多系统上,最好使用自纪元 (1970-01-01) 以来的天数。

因此,您可以在 0000-00-00 和 1970-01-01 之间保持恒定的天数,即 719528。然后将其与纪元以来的天数相加:

echo $(( 719528 + $(date --utc --date "$1" +%s)/86400 ))

答案2

Perl DateTime 模块非常适合做这些事情:

$ perl -MDateTime -E '
    $base = DateTime->new(year=>0, month=>1, day=>1);
    $now = DateTime->now;
    say $now->delta_days($base)->in_units("days");
'
737887

相关内容