날짜 명령의 입력 형식으로 날짜를 사용하는 방법이 있습니까?

날짜 명령의 입력 형식으로 날짜를 사용하는 방법이 있습니까?

명령 사용

$ date +%j

올해의 날짜(001-366)를 출력하지만 입력 형식으로 올해의 날짜를 사용해야 합니다.

$ date --date='066 day'  +%F

2021-03-07이것이 제가 2021년에 나올 것으로 예상하는 결과입니다. 대신에 나는 그것을 얻었다 2021-05-13. 무슨 일이 일어나고 있는지 그리고 내가 원하는 것을 얻을 수 있는 방법이 있는지 아는 사람이 있습니까 date?

답변1

GNU를 사용하여 1년의 66번째 날을 얻으세요 date:

$ date --date='jan 1 + 65 days' +%F
2021-03-07

또는

$ date --date='dec 31 last year + 66 days' +%F
2021-03-07

date --date='066 day' +%F오늘부터 66일 후의 날짜를 얻게 됩니다 . 3월 8일은 공교롭게도 5월 13일입니다.


위에서는 GNU를 사용했습니다 date. OpenBSD에서는 (당신이 요청한 것이 아니라 무엇이든) 다음과 같이 할 수 있습니다:

$ date -u -r "$(( $(date -ju -f %m%d 0101 +%s) + 65*86400 ))" +%F
2021-03-07

date이는 1월 1일부터 시간이 추가된다는 점 에서 위의 첫 번째 GNU 명령과 다소 유사합니다 .

답변2

나는 이 옵션을 제안합니다: 예를 들어, 80일째 날짜를 알고 싶다면:

# take the number of day today
$ n=$(date +%j)
# set some number of days you want to know the date
$ t=80
# subtract the 'n', and add the 't'
$ date -d "-$n day +$t day" %F
2021-03-21

귀하의 예에 맞게 조정하십시오.

$ n=$(date +%j)
$ t=66
$ date -d "-$n day +$t day" %F
2021-03-07

관련 정보