티스토리 뷰

Linux/Bash

date 명령어 정리

gluecode 2020. 10. 27. 12:43

리눅스 shell에서 사용되는 date 명령어는 날짜와 시간에 대하여 알려주는 패키지입니다.

여러 date 옵션들과 과거 및 미래 시간 등을 정리해 보았습니다.

GNU utils를 통한 date 패키지로 테스트하였으므로 맥북 등에서는 일부 옵션이 적용되지 않을 수 있습니다. ( -d 등 )

 

자주 사용되는 옵션 정리

 - %Y : 년도 (YY)

 - %m : 월 (mm)

 - %d : 일자 (dd)

 - %H : 시간 (HH)

 - %M : 분 (MM)

 - %S : 초 (SS)

 

 

이외 활용하면 좋은 옵션

- %F : 년월일 (YYYY-mm-dd) 형태로 출력

- %T : 시간 (HH:MM:SS) 형태로 출력

- %u : 오늘에 해당하는 요일을 숫자로 표현 ( 1 =  Monday, 2 = Tuesday ... 7 = Sunday )

- %U : 현재 주의 일요일 ( ISO 기준이며 한국시간과 비교하여 하루씩 늦다 )

 

 

기타 옵션

- %U(=%W) : 1년 중 일요일을 첫 번째 날로 지정하여 이번주의 해당하는 주를 확인(0부터 시작 -> 00..53)
- %V : ISO 표준을 따르며, 월요일을 첫 번째 날로 지정하여 이번주의 해당하는 주를 확인(1부터 시작 -> 01..53)
- %w - 요일을 숫자로 표현(0 ~ 6) 0 = 일요일 / 1 = 월요일 ...

 

 

응용

 - ISO8601 표준형태로 출력하기

date +%Y-%m-%dT%H:%M:%S

root$ date +%Y-%m-%dT%H:%M:%S
2020-10-27_12:00:01

 - 위에걸 더 간단하게

date +%FT%T

root$ date +%FT%T
2020-10-27T12:00:38

 

과거 날짜 시간 출력하기

 - 과거 날짜/시간은 ago를 붙이면 된다.

 -  Form : date -d '[day or num] ago'

 

1. 10초 전 : date -d '10 second ago'

2. 10분 전 : date -d '10 minute ago'

3. 10시간 전 : date -d '10 hour ago'

4. 어제 : date -d 'yesterday'

5. 어제 : date -d '1 day ago'

6. 1주일 전 : date -d '1 week ago'

7. 1달 전 : date -d '1 month ago'

8. 1년 전 : date -d '1 year ago'

 - ISO8601 표준에 맞춰 1년 20일 전을 출력하기

root$ date -d '1 year ago 20 day ago' +%FT%T
2019-10-07T12:11:38

 

미래 날짜 시간 출력하기

 -  미래 날짜/시간은 ago를 빼면 된다.

 -  Form : date -d '[day or num]'

 

1. 10초 전 : date -d '10 second'

2. 10분 전 : date -d '10 minute'

3. 10시간 전 : date -d '10 hour'

4. 어제 : date -d 'tomorrow'

5. 어제 : date -d '1 day'

6. 1주일 전 : date -d '1 week'

7. 1달 전 : date -d '1 month'

8. 1년 전 : date -d '1 year'

 - ISO8601 표준에 맞춰 1년 20일 후를 출력하기

root$ date -d '1 year 20 day' +%FT%T
2021-11-16T12:15:08

 

특정 날짜/시간에 임의의 날짜/시간을 더하고 빼기 구하기

 - 2020/10/03 12:10:05 시간에서 + 1일 + 1시간 + 1분 + 1초 하기

root$ date -d '2020-10-03T12:10:05 + tomorrow 1hour 1minute 1second' +%FT%T
2020-10-04T13:11:06

 

 - 2020/10/03 12:10:05 시간에서 + 1일 + 1시간 + 1분 + 1초 하기

root$ date -d '2020-10-03T12:10:05 - yesterday 1hour 1minute 1second' +%FT%T
2020-10-02T13:11:06

 

 

변수로 활용

 - 현재 시간

root$ TIME=$(date +%FT%T)
root$ echo $TIME
2020-10-27T12:21:55

 - 특정 시간을 변수로 지정한 뒤, 지정 시간(1일, 1시간, 1분, 1초)을 더하기

root$ TIME=$(date -d 2020-10-03T12:10:05 +%FT%T)
root$ date -d "$TIME + tomorrow 1hour 1minute 1second" +%FT%T
2020-10-04T13:11:06

 

 

 

 

참고 문서

 - man date

 - ko.wikipedia.org/wiki/ISO_8601

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함