날짜/시간을 시간 또는 분 단위로 증가시킵니다.

날짜/시간을 시간 또는 분 단위로 증가시킵니다.

시작 날짜와 종료 날짜를 매개변수로 사용하는 스크립트를 작성 중입니다. 자정이 될 때까지 시작 날짜를 시간 단위로 늘려야 하며 날짜는 1씩 증가합니다. 시작 날짜와 종료 날짜는 여러 달에 걸쳐 있을 수 있습니다. 그래서 제 생각은 날짜 기능을 활용하는 것인데, 이를 다루는 게시물을 많이 찾았습니다. 그러나 올바른 결과를 얻지 못했습니다. 예를 들어:

$ date -d "1999-05-20 23:00:00 +10 min"
Thu, May 20, 1999  9:01:00 AM

$ date -d "1999-05-20 00:00:00 +1 hour"
Wed, May 19, 1999  8:00:00 PM

보시다시피 반환 값이 모두 꺼져 있습니다. 내가 뭘 잘못했는지 잘 모르겠습니다. 또한 반환된 날짜/시간의 형식을 다음과 같이 지정하고 싶었지만 성공하지 못했습니다.

$ date -d "1998-12-31 23:00:00 +0.5 hour" +"%Y/%m/%d-%T"
date: invalid date ‘1998-12-31 23:00:00 +0.5 hour’

누군가 내 스크립트 의사코드에 관심이 있다면:

 While Start_date != End_Date :
    Do some stuff here
    Start_date = Start_date + 1 hour

답변1

Stéphane Chazelas가 지적했듯이, 시간 앞에 + 기호가 있으면 시간이 아닌 시간대를 나타내기 때문에 문제가 발생합니다.

그래서 대신:

$ date -d "1999-05-20 00:00:00 +1 hour"

이것을 사용하십시오 :

$ date -d "1999-05-20 00:00:00 1 hour"

답변2

이것은 델타를 추가하기 전에 Ubuntu 18.04에서 작동하는 것 같았습니다.

date -d "-10min 1999-05-20 23:00:00"
Do 20. Mai 22:50:00 CEST 1999

관련 정보