본문 바로가기
코딩 공부/Terminal

맥 터미널 명령어 - date

by JH-M 2021. 7. 29.

 

현재 날짜 및 시간 출력

$ date
==> 2022년 1월  1일 토요일 14시 47분 09초 KST

 

1. 포맷 출력

원하는 형식으로 날짜 및 시간을 출력

 

[ 사용법 ]

date +%포맷

$ date +%Y년
$ date +%m월
$ date +%d일
$ date +%A	# 월요일, 화요일...
$ date +%H시
$ date +%M분

# 띄어쓰기가 포함된다면
$ date +%m월\ %d일
$ date +%m월' '%d일
$ date '+%m월 %d일'
# 따옴표('), 쌍따옴표(") 동일하게 작동

 

더보기
%a 요일 (월, 화...)
%A 요일 (월요일, 화요일...)
%b 월 (1, 2...)
%B 월 (1월, 2월...)
%c 로컬 날짜 및 시간
%C 년도 앞 두자리
%d
%D 월/일/년도   (%m/%d/%y)
%e 십의 자릿수 공백   (%_d)
%F 연/월/일   (%Y-%m-%d)
%g 년도 뒤에 두자리
%G 년도
%h %b      월
%H 시 (00~23)
%I 시 (01~12)
%j 일 (1~366)
%k 시 (0~23)
%l 시 (1~12)
%m 월 (01~12)
%M 분 (00~59)
%n 줄넘김
%p 오전 / 오후
%r 시:분:초 오전/오후   (%I:%M:%S %p)
%R 시:분   (%H:%M)
%s 1970-01-01 00:00:00 UTC 경과초
%S 초 (00~60)
%t
%T 시:분:초   (%H:%M:%S)
%u 요일 넘버 (1~7, 월요일 = 1)
%U 주차 (00~53, 일요일을 첫째날로 계산)
%V 주차 (01~53, 월요일을 첫째날로 계산)
%w 요일 넘버 (0~6, 일요일 = 0)
%W 주차 (00~53, 월요일을 첫째날로 계산)
%x 연/월/일   (%Y/%m/%d)
%X 시/분/초   (%Y/%m/%d)
%y 년도 뒤에 두자리   (%g)
%Y 년도
%z 타임존 (+시분)
%Z
타임존 이름
%- 앞에 0 제거
%_ 앞에 공백 추가
%0 앞에 0 추가

 

2. 날짜 및 시간 변경

날짜 및 시간을 더하기/빼기또는 입력하기

 

[ 사용법 ]

date -v '날짜 및 시간'

# 3일 후
$ date -v+3d
# 3일 전
$ date -v-3d
# 이번달 3일
$ date -v3d 

# 1년 2달 3일 후
$ date -v+1y -v+2m -v+3d

 

[ -v 포맷 ]

y
m
d
H
M
S

 

3. UTC 시간 출력

UTC 기준시간 출력 (한국시간은 UTC +9)

$ date -u

 

UTC와 GMT
GMT는 그리니치 천문대를 기준으로한 평균 태양시로, 런던을 기점, 웰링턴을 종점으로 하는 협정 세계시입니다. 
1925년부터 1972년까지 세계의 표준 시간으로 사용되었습니다.
UTC는 세슘원자 진동수로 만들어진 협정 세계시로 1972년 1월 1일부터 시행된 국제 표준시입니다. 
UTC와 GMT의 소숫점 단위의 시간차가 있고 오차가 적은 UTC가 기술적인 표기 많이 사용되고 있습니다.
우리나라(KST)는 UTC 보다 9시간 빠른 UTC +9 로 표현될 수 있습니다.

 

4. 1972년 1월 1일 기준 초(sec) 변경

-r 'sec'

# 1972년 1월 1일 기준  +100초
$ date -r 100
# 1972년 1월 1일 기준  -100초
$ date -r -100

# KST 기준을 UTC 시간기준으로 변경후 +100초
$ date -u -r +100

 

 

5. 파일 수정시간 출력

-r 'file'

$ date -r file
==> 2022년 1월  1일 토요일 14시 47분 09초 KST

 

6. 텍스트 날짜 및 시간 읽기

date -j -f  '포맷'  '텍스트'

-j 는 시스템 날짜 및 시간 변경 방지

어차피 일반모드에서는 시간을 변경할 수 없기때문에 -j 는 필수 옵션입니다

 

'포맷'은 위 포맷출력과 동일

$ date -j -f "%d일" "1일"
==> 1일
$ date -j -f "%m월 %d일" "1월 1일"
==> 1월 1일
$ date -j -f "%Y년 %m월 %d일" "2022년 1월 1일"
==> 2022년 1월 1일

 

7. RFC 2822 인터넷 메시지 포맷으로 출력

# %a, %d %b %Y %T %z 포맷으로 출력
$ date -R
==> Mon, 01 Jan 2001 15:41:14 +0900

 

 

8. 타임존 변경하기

🇰🇷
TZ=Asia/Seoul date
🇺🇸
TZ=America/Los_Angeles date
🇫🇷
TZ=Europe/Paris date
🇦🇺
TZ=Australia/Sydney date

# 타임존 이름 확인하기
$ sudo systemsetup -listtimezones
더보기

 Africa/Abidjan
 Africa/Accra
 Africa/Addis_Ababa
 Africa/Algiers
 Africa/Asmara
 Africa/Bamako
 Africa/Bangui
 Africa/Banjul
 Africa/Bissau
 Africa/Blantyre
 Africa/Brazzaville
 Africa/Bujumbura
 Africa/Cairo
 Africa/Casablanca
 Africa/Ceuta
 Africa/Conakry
 Africa/Dakar
 Africa/Dar_es_Salaam
 Africa/Djibouti
 Africa/Douala
 Africa/El_Aaiun
 Africa/Freetown
 Africa/Gaborone
 Africa/Harare
 Africa/Johannesburg
 Africa/Juba
 Africa/Kampala
 Africa/Khartoum
 Africa/Kigali
 Africa/Kinshasa
 Africa/Lagos
 Africa/Libreville
 Africa/Lome
 Africa/Luanda
 Africa/Lubumbashi
 Africa/Lusaka
 Africa/Malabo
 Africa/Maputo
 Africa/Maseru
 Africa/Mbabane
 Africa/Mogadishu
 Africa/Monrovia
 Africa/Nairobi
 Africa/Ndjamena
 Africa/Niamey
 Africa/Nouakchott
 Africa/Ouagadougou
 Africa/Porto-Novo
 Africa/Sao_Tome
 Africa/Tripoli
 Africa/Tunis
 Africa/Windhoek
 America/Adak
 America/Anchorage
 America/Anguilla
 America/Antigua
 America/Araguaina
 America/Argentina/Buenos_Aires
 America/Argentina/Catamarca
 America/Argentina/Cordoba
 America/Argentina/Jujuy
 America/Argentina/La_Rioja
 America/Argentina/Mendoza
 America/Argentina/Rio_Gallegos
 America/Argentina/Salta
 America/Argentina/San_Juan
 America/Argentina/San_Luis
 America/Argentina/Tucuman
 America/Argentina/Ushuaia
 America/Aruba
 America/Asuncion
 America/Atikokan
 America/Bahia
 America/Bahia_Banderas
 America/Barbados
 America/Belem
 America/Belize
 America/Blanc-Sablon
 America/Boa_Vista
 America/Bogota
 America/Boise
 America/Cambridge_Bay
 America/Campo_Grande
 America/Cancun
 America/Caracas
 America/Cayenne
 America/Cayman
 America/Chicago
 America/Chihuahua
 America/Costa_Rica
 America/Creston
 America/Cuiaba
 America/Curacao
 America/Danmarkshavn
 America/Dawson
 America/Dawson_Creek
 America/Denver
 America/Detroit
 America/Dominica
 America/Edmonton
 America/Eirunepe
 America/El_Salvador
 America/Fort_Nelson
 America/Fortaleza
 America/Glace_Bay
 America/Godthab
 America/Goose_Bay
 America/Grand_Turk
 America/Grenada
 America/Guadeloupe
 America/Guatemala
 America/Guayaquil
 America/Guyana
 America/Halifax
 America/Havana
 America/Hermosillo
 America/Indiana/Indianapolis
 America/Indiana/Knox
 America/Indiana/Marengo
 America/Indiana/Petersburg
 America/Indiana/Tell_City
 America/Indiana/Vevay
 America/Indiana/Vincennes
 America/Indiana/Winamac
 America/Inuvik
 America/Iqaluit
 America/Jamaica
 America/Juneau
 America/Kentucky/Louisville
 America/Kentucky/Monticello
 America/Kralendijk
 America/La_Paz
 America/Lima
 America/Los_Angeles
 America/Lower_Princes
 America/Maceio
 America/Managua
 America/Manaus
 America/Marigot
 America/Martinique
 America/Matamoros
 America/Mazatlan
 America/Menominee
 America/Merida
 America/Metlakatla
 America/Mexico_City
 America/Miquelon
 America/Moncton
 America/Monterrey
 America/Montevideo
 America/Montreal
 America/Montserrat
 America/Nassau
 America/New_York
 America/Nipigon
 America/Nome
 America/Noronha
 America/North_Dakota/Beulah
 America/North_Dakota/Center
 America/North_Dakota/New_Salem
 America/Ojinaga
 America/Panama
 America/Pangnirtung
 America/Paramaribo
 America/Phoenix
 America/Port-au-Prince
 America/Port_of_Spain
 America/Porto_Velho
 America/Puerto_Rico
 America/Rainy_River
 America/Rankin_Inlet
 America/Recife
 America/Regina
 America/Resolute
 America/Rio_Branco
 America/Santa_Isabel
 America/Santarem
 America/Santiago
 America/Santo_Domingo
 America/Sao_Paulo
 America/Scoresbysund
 America/Shiprock
 America/Sitka
 America/St_Barthelemy
 America/St_Johns
 America/St_Kitts
 America/St_Lucia
 America/St_Thomas
 America/St_Vincent
 America/Swift_Current
 America/Tegucigalpa
 America/Thule
 America/Thunder_Bay
 America/Tijuana
 America/Toronto
 America/Tortola
 America/Vancouver
 America/Whitehorse
 America/Winnipeg
 America/Yakutat
 America/Yellowknife
 Antarctica/Casey
 Antarctica/Davis
 Antarctica/DumontDUrville
 Antarctica/Macquarie
 Antarctica/Mawson
 Antarctica/McMurdo
 Antarctica/Palmer
 Antarctica/Rothera
 Antarctica/South_Pole
 Antarctica/Syowa
 Antarctica/Troll
 Antarctica/Vostok
 Arctic/Longyearbyen
 Asia/Aden
 Asia/Almaty
 Asia/Amman
 Asia/Anadyr
 Asia/Aqtau
 Asia/Aqtobe
 Asia/Ashgabat
 Asia/Baghdad
 Asia/Bahrain
 Asia/Baku
 Asia/Bangkok
 Asia/Beirut
 Asia/Bishkek
 Asia/Brunei
 Asia/Chita
 Asia/Choibalsan
 Asia/Chongqing
 Asia/Colombo
 Asia/Damascus
 Asia/Dhaka
 Asia/Dili
 Asia/Dubai
 Asia/Dushanbe
 Asia/Gaza
 Asia/Harbin
 Asia/Hebron
 Asia/Ho_Chi_Minh
 Asia/Hong_Kong
 Asia/Hovd
 Asia/Irkutsk
 Asia/Jakarta
 Asia/Jayapura
 Asia/Jerusalem
 Asia/Kabul
 Asia/Kamchatka
 Asia/Karachi
 Asia/Kashgar
 Asia/Kathmandu
 Asia/Katmandu
 Asia/Khandyga
 Asia/Kolkata
 Asia/Krasnoyarsk
 Asia/Kuala_Lumpur
 Asia/Kuching
 Asia/Kuwait
 Asia/Macau
 Asia/Magadan
 Asia/Makassar
 Asia/Manila
 Asia/Muscat
 Asia/Nicosia
 Asia/Novokuznetsk
 Asia/Novosibirsk
 Asia/Omsk
 Asia/Oral
 Asia/Phnom_Penh
 Asia/Pontianak
 Asia/Pyongyang
 Asia/Qatar
 Asia/Qyzylorda
 Asia/Rangoon
 Asia/Riyadh
 Asia/Sakhalin
 Asia/Samarkand
 Asia/Seoul
 Asia/Shanghai
 Asia/Singapore
 Asia/Srednekolymsk
 Asia/Taipei
 Asia/Tashkent
 Asia/Tbilisi
 Asia/Tehran
 Asia/Thimphu
 Asia/Tokyo
 Asia/Ulaanbaatar
 Asia/Urumqi
 Asia/Ust-Nera
 Asia/Vientiane
 Asia/Vladivostok
 Asia/Yakutsk
 Asia/Yekaterinburg
 Asia/Yerevan
 Atlantic/Azores
 Atlantic/Bermuda
 Atlantic/Canary
 Atlantic/Cape_Verde
 Atlantic/Faroe
 Atlantic/Madeira
 Atlantic/Reykjavik
 Atlantic/South_Georgia
 Atlantic/St_Helena
 Atlantic/Stanley
 Australia/Adelaide
 Australia/Brisbane
 Australia/Broken_Hill
 Australia/Currie
 Australia/Darwin
 Australia/Eucla
 Australia/Hobart
 Australia/Lindeman
 Australia/Lord_Howe
 Australia/Melbourne
 Australia/Perth
 Australia/Sydney
 Europe/Amsterdam
 Europe/Andorra
 Europe/Athens
 Europe/Belgrade
 Europe/Berlin
 Europe/Bratislava
 Europe/Brussels
 Europe/Bucharest
 Europe/Budapest
 Europe/Busingen
 Europe/Chisinau
 Europe/Copenhagen
 Europe/Dublin
 Europe/Gibraltar
 Europe/Guernsey
 Europe/Helsinki
 Europe/Isle_of_Man
 Europe/Istanbul
 Europe/Jersey
 Europe/Kaliningrad
 Europe/Kiev
 Europe/Lisbon
 Europe/Ljubljana
 Europe/London
 Europe/Luxembourg
 Europe/Madrid
 Europe/Malta
 Europe/Mariehamn
 Europe/Minsk
 Europe/Monaco
 Europe/Moscow
 Europe/Oslo
 Europe/Paris
 Europe/Podgorica
 Europe/Prague
 Europe/Riga
 Europe/Rome
 Europe/Samara
 Europe/San_Marino
 Europe/Sarajevo
 Europe/Simferopol
 Europe/Skopje
 Europe/Sofia
 Europe/Stockholm
 Europe/Tallinn
 Europe/Tirane
 Europe/Uzhgorod
 Europe/Vaduz
 Europe/Vatican
 Europe/Vienna
 Europe/Vilnius
 Europe/Volgograd
 Europe/Warsaw
 Europe/Zagreb
 Europe/Zaporozhye
 Europe/Zurich
 GMT
 Indian/Antananarivo
 Indian/Chagos
 Indian/Christmas
 Indian/Cocos
 Indian/Comoro
 Indian/Kerguelen
 Indian/Mahe
 Indian/Maldives
 Indian/Mauritius
 Indian/Mayotte
 Indian/Reunion
 Pacific/Apia
 Pacific/Auckland
 Pacific/Bougainville
 Pacific/Chatham
 Pacific/Chuuk
 Pacific/Easter
 Pacific/Efate
 Pacific/Enderbury
 Pacific/Fakaofo
 Pacific/Fiji
 Pacific/Funafuti
 Pacific/Galapagos
 Pacific/Gambier
 Pacific/Guadalcanal
 Pacific/Guam
 Pacific/Honolulu
 Pacific/Johnston
 Pacific/Kiritimati
 Pacific/Kosrae
 Pacific/Kwajalein
 Pacific/Majuro
 Pacific/Marquesas
 Pacific/Midway
 Pacific/Nauru
 Pacific/Niue
 Pacific/Norfolk
 Pacific/Noumea
 Pacific/Pago_Pago
 Pacific/Palau
 Pacific/Pitcairn
 Pacific/Pohnpei
 Pacific/Ponape
 Pacific/Port_Moresby
 Pacific/Rarotonga
 Pacific/Saipan
 Pacific/Tahiti
 Pacific/Tarawa
 Pacific/Tongatapu
 Pacific/Truk
 Pacific/Wake
 Pacific/Wallis

 

9. 날짜 음성으로 듣기

$ date | say

 

10. 디데이 계산하기

$ today=$(date +%s)
$ dday=$(date -j -f "%m월 %d일" "11월 18일" +%s)
$ echo D-Day : $(( ( dday - today )/(60*60*24) ))일

 

11. 나이 계산하기

[ script.sh 스크립트 파일 작성 ]

#!bin/bash
birthday="1990년 3월 10일"
# %Y 는 년도
birthyear=$(date -j -f "%Y년 %m월 %d일" "$birthday" +%Y)
thisyear=$(date +%Y)
# %j 는 1~366일
monthday=$(date -j -v$(date +%Y)y -f "%Y년 %m월 %d일" "$birthday" +%j)
today=$(date +%j)
# -ge 는 "크거나 같다"와 같습니다
if [ $monthday -ge $today ]; then
    madd=0
else
    madd=1
fi
echo 나이: $[ $thisyear - $birthyear + 1 ]
echo 만 나이: $[ $thisyear - $birthyear -1 + $madd ]

[ 실행 ]

# 실행권한 설정
$ chmod +x script.sh
# 실행
$ ./script.sh

댓글