현재 날짜 및 시간 출력
$ 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
댓글