날자를 출력하거나 설정하는 Unix 명령어인 date 사용법 정리


날자를 문자열로 출력

옵션없이 사용하면 현재 날자를 출력하며 포맷은 locale 설정에 따라 달라집니다. 

ko_KR.utf8 locale 시

$ date 

2020. 04. 12. (일) 13:16:43 KST
BASH

C locale 시

$ date 

Sun Apr 12 13:17:34 KST 2020
BASH


format 지정

만약 날자를 원하는 포맷으로 출력할 경우  date +FORMAT 형식으로 사용하면 됩니다.


예로 다음은 날자 출력을 YYYY-MM-DD 포맷으로 출력합니다.

$ date "+%Y-%m-%d"

2020-04-12
BASH


시간과 초를 포함하려면 다음 키워드를 사용하며 대소문자에 주의해야 합니다.

  • 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
BASH


12시간으로 표시하고 오전/오후를 추가하려면 %H 를 %I 로 오전/오후 표시하는 %p 를 사용합니다.

$ date "+%Y-%m-%d %I:%M:%S %p"

2020-04-12 13:21:10
BASH


unix time stamp 로 표시

현재 시간을 unix timestamp 로 표시하려면 %s (소문자) 를 사용합니다. 

$ data +%s

1596521474
BASH


특정 날자 구하기

-d 옵션뒤에 구할 날자의 문자열을 지정합니다.


어제 날자

$ date -d "-1 days"

2020. 04. 11. (토) 13:23:05 KST
BASH

한주전

$ date -d "-1 weeks"

2020. 04. 05. (일) 13:23:30 KST
BASH


3일후

$ date -d "+3 days"

2020. 04. 15. (수) 11:23:55 KST
BASH


1달 3일후를 YYYY-MM-DD로 표현

$ date -d "+1 months +3 days" "+%Y-%m-%d"

2020-05-15
BASH


시스템 날자 설정

시스템 날자는 root 권한이 필요합니다.


시간을 설정할 경우 --set(-s) 옵션 뒤에 설정할 시간값을 지정해 주며 이때 포맷을 지정할 수 있습니다.

yyyy-mm-dd

$ sudo date  +%Y%m%d --set="20200412"
BASH

yyyy-mm-dd

$ sudo date  +%Y%m%d -s "20200412"
BASH



yyyy-mm-dd

$ sudo date  "+%Y-%m-%d %H:%M:%S" -s "20200412-13:24:50"
BASH


같이 보기

Ref