일을 날짜로 변환

일을 날짜로 변환

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)를 일정하게 유지할 수 있습니다. 그런 다음 epoch 이후의 일수에 추가합니다.

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

관련 정보