시작 날짜와 종료 날짜를 매개변수로 사용하는 스크립트를 작성 중입니다. 자정이 될 때까지 시작 날짜를 시간 단위로 늘려야 하며 날짜는 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