Bash Shell - 날짜, 시간 가져오기

Linux의 Bash shell script에서 date를 사용하여 날짜, 시간을 가져오는 방법을 알아보겠습니다.

1. date로 날짜 얻기

다음 코드들은 date의 실행 결과를 today 변수에 저장합니다. date는 날짜, 시간을 가져오는 명령어입니다.

아래 코드에서 quotes(`)를 사용한 방법 또는 $를 사용한 방법 중에 하나를 선택하셔서 사용하시면 됩니다.

#!/bin/bash

today=`date`
echo $today

today=$(date)
echo $today

위의 코드를 실행해보면, 시스템에 설정된 Locale 언어로 date 및 time이 출력됩니다.

$ bash example.sh
2021. 10. 08. (금) 18:59:04 KST
2021. 10. 08. (금) 18:59:04 KST

2. format을 적용하여 원하는 형식으로 날짜, 시간 출력

다음과 같은 syntax로 date에 format을 적용하여 원하는 형식으로 출력할 수 있습니다.

date +FORMAT

2.1 "MM-DD-YY" 형식으로 날짜 출력

%m-%d-%yMM-DD-YY형식으로 날짜를 출력합니다.

#!/bin/bash

today=`date +%m-%d-%y`
echo $today

Output:

$ bash example.sh
10-08-21

2.2 "MM-YYYY" 형식으로 날짜 출력

%m-%YMM-YYYY형식으로 날짜를 출력합니다.

#!/bin/bash

today=`date +%m-%Y`
echo $today

Output:

$ bash example.sh
10-2021

2.3 "MM/DD/YY" 형식으로 날짜 출력

%DMM/DD/YY형식으로 날짜를 출력합니다.

#!/bin/bash

today=`date +%D`
echo $today

Output:

$ bash example.sh
10/08/21

3. 시간만 출력

%T는 시간만 출력합니다.

#!/bin/bash

time=`date +%T`
echo $time

Output:

$ bash example.sh
19:06:56

3.1 시간만 출력 (12시 형식으로 출력)

%r는 12시 형식으로 시간만 출력합니다. 시간은 System의 Locale 언어로 표현됩니다.

#!/bin/bash

time=`date +%r`
echo $time

Locale이 ko_KR일 때, 위의 코드는 다음과 같이 출력합니다.

$ bash example.sh
오후 07시 06분 56초

Locale이 en_US일 때, 위의 코드는 다음과 같이 출력합니다.

$ bash example.sh
07:06:56 PM

3.2 HH:MM 형식으로 시간 출력

%H:%M는 시간과 분만 출력합니다.

#!/bin/bash

time=`date +%H:%M`
echo $time

Output:

$ bash example.sh
19:06

4. 특정 날짜 시간 출력

4.1 현재에서 하루 전/후 날짜 출력

-d "-1 days" 옵션은 현재에서 하루 전의 날짜를 출력합니다. + days는 다음 날의 날짜를 출력합니다.

#!/bin/bash

yesterday=`date -d "-1 days"`
echo $yesterday

tommorrow=`date -d "+1 days"`
echo $tommorrow

Output:

$ bash example.sh
2021. 10. 07. (목) 19:16:10 KST
2021. 10. 09. (토) 19:16:10 KST

몇주 전/후, 또는 몇달 전/후의 시간은 다음과 같이 가져올 수 있습니다.

#!/bin/bash

date=`date -d "+2 weeks"`
echo $date

date=`date -d "-3 months"`
echo $date

4.2 특정 날짜에 format을 적용

다음과 같이 특정 시간의 날짜에 format을 적용하여 원하는 형식으로 출력할 수 있습니다.

#!/bin/bash

date=`date -d "-3 months" "+%m-%d-%Y"`
echo $date

Output:

$ bash example.sh
07-08-2021

5. 다양한 Format

아래와 같이 다양한 format들이 있습니다. 이것을 참고하여 원하는 형식으로 날짜, 시간을 가져올 수 있습니다.

Format Description
date +%a Gives name of the weekday [Mon, Sun, Fri]
date +%A Gives name of the weekday [Monday, Sunday, Friday]
date +%b Gives name of the month [Jan, Feb, Mar]
date +%B Gives name of the month [January, February, March]
date +%d Displays day of the month [05]
date +%D Displays current date MM/DD/YY format [11-01-21]
date +%F Shows date in YYYY-MM-DD format [2021-11-01]
date +%H Shows hour in 24-hour format [22]
date +%I Shows hour in 12-hour format [11]
date +%j Displays the day of the year [001 – 366]
date +%m Displays the number of the month [01-12]
date +%M Displays minutes [00-59]
date +%s Unix time stamp
date +%S Displays seconds [00-59]
date +%N Displays in Nanoseconds
date +%T Displays time as HH:MM:SS [in 24-hour format]
date +%u Day of the week [1-7] 1 is Monday, 6 is Saturday
date +%U Shows week number of the year [00-53]
date +%Y Displays year YYYY [2021]
date +%Z Displays Time zone
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha