리눅스 + X 일을 추가하고 새로운 가상 날짜를 얻으십시오


115

나는 리눅스 (RH 5.3) 머신을 가지고있다

10 일 플러스 날짜를 추가 / 계산해야하므로 새 날짜 (만료일)를 얻습니다.

예를 들어

 # date 
 Sun Sep 11 07:59:16 IST 2012

그래서 나는 얻을 필요가있다

     NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012

새로운 만료 날짜를 계산하는 방법을 조언하십시오 (bash, ksh 또는 date date 조작?)

답변:


158

-d스위치를 사용하여 계산할 날짜를 제공하면됩니다.

date
Sun Sep 23 08:19:56 BST 2012
NEW_expration_DATE=$(date -d "+10 days")
echo $NEW_expration_DATE
Wed Oct 3 08:12:33 BST 2012 
  -d, --date=STRING
          display time described by STRING, not now

이것은 당신이 할 수있는 매우 강력한 도구입니다

date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 03:29:16 BST 2012

또는

TZ=IST date -d "Sun Sep 11 07:59:16 IST 2012+10 days"
Fri Sep 21 07:59:16 IST 2012

또는

prog_end_date=`date '+%C%y%m%d' -d "$end_date+10 days"`

따라서 $ end_date = 20131001이면 $ prog_end_date = 20131011


2
감사합니다!! 여러분의 예제는 GNU date정보 페이지 에 있어야합니다 !
Davor Cubranic

내가 이것을 할 수 있다는 것을 결코 알지 못했습니다-정말 좋은 해결책입니다.
Tim Seed

1
+1 : 대단합니다. 유용한 답변.
copper.hat

1
OS X에서 내장 날짜를 사용할 때 오류가 발생합니다. brew install coreutilsGNU 날짜 기능을 설치하는 데 사용 합니다 gdate.
CousinCocaine 2016 년

2
작동하지 않습니다 : $ docker run -it bash bash bash-5.0# date -d "+10 days" date: invalid date '+10 days' bash-5.0#
Christian Bongiorno

37

"+ x days"를 형식 문자열로 사용할 수 있습니다.

$ date -d "+10 days"

20
$ date -v -1d

날짜 명령을 사용하여 1 일 이전 날짜를 얻으려면 다음을 수행하십시오.

$ date -v -1d

(현재 날짜 -1)은 하루 전을 의미합니다.

$ date -v +1d

이것은 (현재 날짜 +1)을 의미합니다.

마찬가지로 아래에 쓰여진 코드는 연도, 월 등을 찾기 위해 "d"대신 사용될 수 있습니다.

y-Year
m-Month 
w-Week 
d-Day 
H-Hour 
M-Minute  
S-Second

8
이것은 내 Mac에서는 작동하지만 Gentoo 서버에서는 작동하지 않습니다.
Mike Dotterer

허용 된 답변보다 훨씬 낫기 때문에 임의의 날짜 형식도 한 줄로 허용합니다.
pferrel

9
Ubuntu 15.10 또는 RedHat 6.6에서는 작동하지 않습니다. RH5.3에서도 작동하지 않는다고 가정합니다. 이유 : '-v'와 '-1d' '날짜'에 대한 유효한 스위치 없습니다
syss

2
이것은 ( 여러 BSD에서) dateGNU가 지원하지 않는에 대한 Unix / BSD 문법 인 것 같습니다 . GNU 는 받아 들인 대답에 구문을 사용합니다. 항상 기억하십시오 : GNU는 유닉스가 아닙니다! dategdatedate
베이컨 비트

1
@BaconBits-그러나 당신이 rms라면 많은 GNU util 코드가 리눅스로 포팅 되었기 때문에 "Linux GNU"라고 주장 할 수 있습니다 . 물론, GNU Hurd (FSF의 Once-and-Future-OS)가 간신히 있다는 사실을 제외하고. 나는 rms가 화를내는 것은 그가 시간을 낭비하는 동안 Linus는 코드를 작성하는 데 시간을 보냈다고 생각합니다. :-)
Bob Jarvis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.