티스토리 뷰
리눅스 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
'Linux > Bash' 카테고리의 다른 글
pushd 와 popd 로 디렉토리 기억하고 이동하기 (0) | 2020.03.18 |
---|---|
rsync 활용하여 파일 전송하기 (0) | 2020.03.17 |
[Bash] 여러 노드로 ping check script (0) | 2020.03.13 |
alias로 명령어 약자 사용하기 (0) | 2019.04.20 |
- Total
- Today
- Yesterday
- dns 동작
- 윈도우
- ssh
- vlan
- iso8601
- http/0.9
- multiple ping
- tag
- vni
- date 미래
- vtep
- docker logs
- date 시간 변경
- 802.3ad
- ping
- date 과거
- date 시간 지정
- http/1.0
- VXLAN
- head end replication
- HTTP/1.1
- HTTP
- bash
- Switch
- link aggregation
- ping multi
- Windows
- data plane
- dns 동작 방식
- 802.1ax
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |