Linux date 명령어 사용법
날자를 출력하거나 설정하는 Unix 명령어인 date 사용법 정리
날자를 문자열로 출력
옵션없이 사용하면 현재 날자를 출력하며 포맷은 locale 설정에 따라 달라집니다.
ko_KR.utf8 locale 시
$ date 2020. 04. 12. (일) 13:16:43 KST
C locale 시
$ date Sun Apr 12 13:17:34 KST 2020
format 지정
만약 날자를 원하는 포맷으로 출력할 경우 date +FORMAT 형식으로 사용하면 됩니다.
예로 다음은 날자 출력을 YYYY-MM-DD 포맷으로 출력합니다.
$ date "+%Y-%m-%d" 2020-04-12
시간과 초를 포함하려면 다음 키워드를 사용하며 대소문자에 주의해야 합니다.
- 24 시간: %H
- 12시간: %I
- 분: %M
- 초: %S
- 오전/오후: %p
- unix time stamp: %s(소문자)
예로 다음은 오라클의 date 함수의 YYYY-MM-DD HH24:MI:SS 와 동일한 출력입니다.
$ date "+%Y-%m-%d %H:%M:%S" 2020-04-12 13:21:10
12시간으로 표시하고 오전/오후를 추가하려면 %H 를 %I 로 오전/오후 표시하는 %p 를 사용합니다.
$ date "+%Y-%m-%d %I:%M:%S %p" 2020-04-12 13:21:10
unix time stamp 로 표시
현재 시간을 unix timestamp 로 표시하려면 %s (소문자) 를 사용합니다.
$ data +%s 1596521474
특정 날자 구하기
-d 옵션뒤에 구할 날자의 문자열을 지정합니다.
어제 날자
$ date -d "-1 days" 2020. 04. 11. (토) 13:23:05 KST
한주전
$ date -d "-1 weeks" 2020. 04. 05. (일) 13:23:30 KST
3일후
$ date -d "+3 days" 2020. 04. 15. (수) 11:23:55 KST
1달 3일후를 YYYY-MM-DD로 표현
$ date -d "+1 months +3 days" "+%Y-%m-%d" 2020-05-15
시스템 날자 설정
시스템 날자는 root 권한이 필요합니다.
시간을 설정할 경우 --set(-s) 옵션 뒤에 설정할 시간값을 지정해 주며 이때 포맷을 지정할 수 있습니다.
yyyy-mm-dd
$ sudo date +%Y%m%d --set="20200412"
yyyy-mm-dd
$ sudo date +%Y%m%d -s "20200412"
yyyy-mm-dd
$ sudo date "+%Y-%m-%d %H:%M:%S" -s "20200412-13:24:50"