將天數轉換為日期

將天數轉換為日期

我想問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

相關內容