쉘에서 날짜를 여러방식으로 사용하는데요 입력받은 날짜가 원하는 포맷에 유효한지 체크하고 플러스 원하는 시간만큼 과거나 미래로 이동하여 계산하는 방식을 정리했습니다.
저도 가끔 사용하는데 매번 까먹어서 정리했습니다.
date 실행 시 날짜 형식을 "YYYY-mm-dd HH:MM:SS" 으로 해줘야 합니다.
YYYYmmddHHMMSS로 입력한 날짜가 유효한 날짜인지 체크 하는 방법입니다.
function is_valid_time() {
# https://arogoose.tistory.com/
a=$1
b="${a:0:4}-${a:4:2}-${a:6:2} ${a:8:2}:${a:10:2}:${a:12:2}"
c=`date -d "${b}"`
return $?
}
a=$1
is_valid_time $a || { echo "invalid"; exit 1; }
date: invalid date `2021-04-09 19:18:99'
입력한 날짜에서 원하는 시간만큼 변화 후 타임스탭프 포맷으로 출력 구하는 방법입니다.
+%Y%m%d%H%M%S를 적절하게 원하는 방식으로 세팅하면 됩니다.
function is_valid_time() {
#https://arogoose.tistory.com/
a=$1
b="${a:0:4}-${a:4:2}-${a:6:2} ${a:8:2}:${a:10:2}:${a:12:2}"
c=`date -d "${b} 1 hours ago" +%Y%m%d%H%M%S`
echo $c
return $?
}
1 hours ago (한시간 과거) / 10 minutes (10분 후) / 3 months ago (3개월 전) / 1 year (1년 후)
반응형