๐ง ๋ฆฌ๋ ์ค Date ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ (๋ ์ง ํฌ๋งท)
Date ๋ช ๋ น์ด
๋ฆฌ๋ ์ค ํฐ๋ฏธ๋์์ ์์คํ ๋ ์ง๋ฅผ ์๊ณ ์ถ์๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๊ฐ ๋ํ์ ์ผ๋ก date๊ฐ ์๋ค.
์ด์ธ์๋ ๋ค์ํ ์ต์ ์ ์ฃผ๋ฉด ๋ค์ํ ๋ ์ง ํฌ๋งท์ผ๋ก ๋ณํํด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ณผ๊ฑฐ ๋ ์ง ๊ตฌํ๋ ๋ฑ ๋จ์ํด ๋ณด์ด์ง๋ง ์ ๋ง ๋ค์ํ ์ญํ ์ ํ๋ ๋ช ๋ น์ด๋ค.
date ๋ช ๋ น์ด ์ฌ์ฉ ๋ํ์ ์ธ ์)
- ์์คํ ์๋ฒ ์๊ฐ ์ค์
- ์ค์ ๋์ด ์๋ ๋ ์ง ๊ฐ์ ์ํ๋ ํํ๋ก ์ป๊ธฐ
- ๊ณผ๊ฑฐ ๋ฏธ๋ ๋ง์ ๋บ์ ๋ฑ ์ํ๋ ๋ ์ง ์ถ๋ ฅํ๊ฑฐ๋ ์ฐจ์ด ๊ตฌํ๊ธฐ
# format : ํ์์ ์ง์ ํ๊ธฐ ์ํ ๋ฌธ์์ด '+ %m/%d/%y %H:%M' ๊ณผ ๊ฐ์ด ์ฌ์ฉํ ๊ฒฝ์ฐ '11/11/20 17:11'๊ณผ ๊ฐ์ด ์ถ๋ ฅ ๋จ.
$ date [option] [+FORMAT]
# mmddhhmm : ์, ์ผ, ์๊ฐ, ๋ถ์ ๋ํ๋ด๋ 8์๋ฆฌ ์ซ์๋ก super user๊ฐ ์์คํ
๋ ์ง์ ์๊ฐ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ
# yy : ๋
๋์ ๋ง์ง๋ง ๋์๋ฆฌ๋ก super user๊ฐ ์์คํ
๋ ์ง์ ์๊ฐ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ
$ date [option] [MMDDhhmm[YY]]
์ต์ | ๋ด์ฉ |
-s [STRING] --set=[STRING] |
์๊ฐ๋ง ์ค์ ํ ๋ ์ฌ์ฉ. ์์๋ 'hh:mm:ss' ๋๋ 'hhmm'๋ก ์ง์ |
-d [STRING] --date=[STRING] |
์ง์ ํ STRING ์ธ์๊ฐ์ ํด๋นํ๋ ๋ ์ง๋ฅผ ํ์ฑํ์ฌ ์ถ๋ ฅ |
-r[FILE] --reference=[FILE] |
ํ์ผ ํน์ ํด๋๋ฅผ ์ฐธ์กฐํ์ฌ ํด๋น ํ์ผ์ด๋ ํด๋์ ์์ ์ผ์๋ฅผ ์ถ๋ ฅ |
--u --utc --universal |
์ธ๊ณํ์ ์๊ฐ(UTC)๋ก ์ถ๋ ฅ |
-I --iso-8601[๏ผtimespec] |
ISO-8601 ํ์์ผ๋ก ์ถ๋ ฅํ๋ค. ๋ง์ผ timespec์ ์ง์ ํ๋ฉด, ๋ ์ง๋ ์, ๋ถ, ์ด ์ค ํ๋๋ฅผ ์ถ๋ ฅํ๋ค. |
-f --file๏ผdatefile |
์ง์ ํ ํ์ผ(datefile)์์ ๊ฐ์ ํ์ ๋ํ ๋ ์ง๋ฅผ ์ถ๋ ฅ |
Date ๋ช ๋ น ๋ ์ง ์ถ๋ ฅ ์์
ํ์ฌ ๋ ์ง ์ถ๋ ฅ
$ date
Thu Jun 20 12:21:25 KST 2021
ํ์ฌ ๋ ์ง ๋ณ๊ฒฝ
ํ์ฌ ์์คํ ์๊ฐ์ 2021๋ 07์ 20์ผ ์คํ 9์๋ก ์ค์
# ์์คํ
์๊ฐ์ด ๋๊ธฐํ ํด์ . ๊ทธ๋์ผ ๋ ์ง ๋ณ๊ฒฝ์ด ์ ์ฉ๋๋ค.
$ timedatectl set-ntp 0 (or) timedatectl set-ntp false
$ date 0720210021 # '07์/20์ผ/21์/00๋ถ/21๋
'
๋ช ๋ น์ด ์ฐ์ตํ ๋ค ๋ฐ๋์ ์๊ฐ๋๊ธฐํ๋ฅผ ๋ค์ true๋ก ํด์ฃผ์.
ํ์ฌ ์๊ฐ ์ค์ (-s)
$ date -s 06:40:30 # ํ์ฌ ์๊ฐ์ ์ค์ 6์ 40๋ถ 30์ด๋ก ์ค์
๋ ์ง ๊ณ์ฐ (-d)
โป ๊ณผ๊ฑฐ ๋ ์ง ๊ตฌํ๊ธฐ
$ date -d '1 second ago' # 1์ด์
$ date -d '2 seconds ago' # 2์ด์ . s๋ถ์ฌ๋ ๋๊ณ ์๋ถ์ฌ๋ ๋จ ๋ชจ๋ ๋์ผ
$ date -d '1 minute ago' # 1๋ถ์
$ date -d '1 hour ago' # 1์๊ฐ์
$ date -d 'yesterday' # ์ด์
$ date -d '2 days ago' # 2์ผ์
$ date -d '1 week ago' # 1์ฃผ์ผ์
$ date -d '1 month ago' # 1๋ฌ์
$ date -d '1 year ago' # 1๋
์
$ date -d '1 year 5 months ago' # 1๋
5๊ฐ์ ์
$ date -d 'last monday' # ์ง๋ ์์์ผ
# -์ซ์๋ก๋ ํํ์ด ๊ฐ๋ฅ
$ date -d '-1 second' # 1์ด์
$ date -d '-1 days' # 1์ผ์
# --date ์ต์
date --date='3 month ago'
์๊ฐ์ ๋จ์๋ฅผ ๋ํ๋ด๋ day, week, month ๋ฑ์ ๋ณต์ํ์ ์ฌ์ฉํด๋๋๊ณ ๋จ์ํ์ ์ฌ์ฉํด๋ ์๊ด ์๋ค.
โป ๋ฏธ๋ ๋ ์ง ๊ตฌํ๊ธฐ
date -d '1 second' # 1์ดํ
date -d '1 minute' # 1๋ถํ
date -d '1 hour' # 1์๊ฐํ
date -d 'tomorrow' # ๋ด์ผ
date -d '1 day' # ๋ด์ผ
date -d '1 week' # 1์ฃผ์ผ ํ
date -d '1 month' # ํ๋ฌ ํ
date -d '1 year' # 1๋
ํ
date -d '1 year 5 month' # 1๋
5๊ฐ์ ํ
date -d 'next monday' # ๋ค์ ์์์ผ
date -d 'this thursday' # ์ด๋ฒ์ฃผ ๋ชฉ์์ผ
# -์ซ์๋ก๋ ํํ์ด ๊ฐ๋ฅ
$ date -d '+1 second' # 1์ดํ
$ date -d '+1 days' # 1์ผํ
# --date ์ต์
date --date='3 month'
๊ณผ๊ฑฐ ํํ๋ฒ์์ ago๋ฅผ ์ ์ธํ๋ฉด ๋๋ค.
๋ ์ง ํ์ผ ์ถ๋ ฅ (-f)
๋ ์ง๊ฐ ์ ๋ ฅ๋ ํ์ผ์ ๋ผ์ธ ๋จ์๋ก ์ฝ์ด์ ์ถ๋ ฅํด์ค๋ค.
๋น์ฐํ ํ์ผ ๋ด์ฉ์ผ๋ก๋ ์์ -d ์ต์ ์ [STRING]์ธ์๊ฐ์ ํ์์ผ๋ก ๊ธฐ์ ๋์ด ์์ด์ผ ํ๋ค.
# ๋ฐ์ดํฐ ํ์ผ์ ์ ์ฅํ๋ ๋ ์ง๋ฅผ ์ฝ์ด์ ํ์ํด์ค๋ค.
$ date --file=sampleDatefile
$ date -f sampleDatefile
2002. 07. 28. (์ผ) 00:00:00 KST
2008. 08. 05. (ํ) 00:00:00 KST
ํ์ผ์ ์์ ๋ ๋ ์ง ์ถ๋ ฅ (-r)
$ date -r 'testfile.txt'
Sun Jan 1 00:00:00 KST 2017
๋ ์ง/์๊ฐ ๋ํ๊ธฐ ๋นผ๊ธฐ
์ถ๋ ฅ๋ ๋ ์ง ๊ธฐ์ค์ผ๋ก ๋ ์ง๋ฅผ ๋ํ๊ฑฐ๋ ๋นผ์ ๊ณ์ฐ์ด ๊ฐ๋ฅํ๋ค
๋ฐฉ์์ ‘๊ธฐ์ค ๋ ์ง + ๋ ์ง’ ํน์ ‘๊ธฐ์ค๋ ์ง - ๋ ์ง’ ํํ๋ก ์ฐ๋ฉด ์์์ ๊ณ์ฐ์ด ๋๋ค.
# ๊ธฐ์ค๋ ์ง ์ด์ ์์ - 1์ผ = ๊ทธ์ ๊ป
$ date -d 'yesterday - 1 day'
# ๊ธฐ์ค๋ ์ง ๋ด์ผ์์ + 2์ผ = 3์ผ ํ
$ date -d 'tomorrow + 2 day'
# 4์ฃผ์ ์ ์์์ผ
date -d '4 week ago monday'
# 4์ฃผ์ ์ ํ์์ผ
date -d '4 week ago monday + 1 day '
# 4์ฃผ์ ์ ํ์์ผ
date -d '4 week ago tuesday'
# ๊ธฐ์ค๋ ์ง 2020/10/03 12:10:05 ์์ + 1์ผ + 1์๊ฐ + 1๋ถ + 1์ด ํ๊ธฐ
$ date -d '2020-10-03T12:10:05 + tomorrow 1hour 1minute 1second' + %FT%T
2020-10-04T13:11:06
๋ ์ง ํฌ๋งท ํ์ ์ด์ ๋ฆฌ
ํฌ๋งท์ด๋ ์ถ๋ ฅํ ๋ ์ง์ ํ์(๋ชจ์)์ ์ง์ ํ๊ธฐ ์ํ ๋ฌธ์์กฐํฉ์ด๋ค.
์๋ฅผ ๋ค์ด, '+ %m/%d/%y %H:%M' ๊ณผ ๊ฐ์ด ์ฌ์ฉํ ๊ฒฝ์ฐ '11/11/20 17:11'๊ณผ ๊ฐ์ด ์ถ๋ ฅ ๋๊ฒ ๋๋ค.
$ date +ํฌ๋งท๋ฌธ์์กฐํฉ
$ date +"%G%m%e%H%M"
202203111351
ํฌ๋งท ๋ฌธ์ | ์ค๋ช |
%% | '%' ๋ฌธ์ ์์ฒด |
%a | ์์ผ ์ฝ์ด (์, Sun...MOn, ์ผ...์) - local ๊ธฐ์ค |
%A | ์์ผ ์ ์ฒด ์ด๋ฆ (์, Sunday...Monday, ์ผ์์ผ...์์์ผ) - local ๊ธฐ์ค |
%b | ๋ฌ ์ฝ์ด (์, Jan...Dec, 1์...12์) - local ๊ธฐ์ค |
%B | ๋ฌ ์ ์ฒด ์ด๋ฆ (์, January...December, 1์...12์) - local ๊ธฐ์ค |
%c | ๋ ์ง์ ์๊ฐ (์, Thu Mar 3 23:05:25 2005, 2015๋ 12์ 25์ผ (์) ์ค์ 12์ 50๋ถ 16์ด) - local ๊ธฐ์ค |
%C | ์ธ๊ธฐ (4์๋ฆฌ ์ฐ๋์์ ์ ๋ ์๋ฆฌ๋ง ๋ํ๋ธ๋ค. ์, 21) |
%d | ๊ทธ ๋ฌ์ ์ผ (์, 01...31) |
%D | ๋ ์ง mm/dd/yy (์ฆ, %m/%d/%y) |
%e | ๋น์นธ ์ถ๊ฐ๋ ๊ทธ ๋ฌ์ ์ผ (์ฆ, %_d) |
%F | ์ ์ฒด ๋ ์ง yyyy-mm-dd (์ฆ, %Y-%m-%d) |
%g | ๋ ๋์ ๋ท ๋์๋ฆฌ (%G์ ๋ฐ๋) -- ISO |
%G | ๋ ๋ ๋ชจ๋ ์๋ฆฌ (์ฐธ์กฐ %V) -- ISO |
%h | %b์ ๊ฐ์ |
%H | ์๊ฐ (00..23) |
%I | ์๊ฐ (01..12) |
%j | ๊ทธ ํด์ ์ผ์ (001..366) |
%k | ์๊ฐ ( 0..23) |
%l | ์๊ฐ ( 1..12) |
%m | ๋ฌ (01..12) |
%M | ๋ถ (00..59) |
%n | ๋ค์ ์ค |
%N | ๋๋ ธ์ด (000000000..999999999) |
%p | ์ค์ ๋๋ ์คํ (AM ๋๋ PM), ์ ์ ์์ ๋ ๋น์นธ์ - local ๊ธฐ์ค |
%P | %p์ ๊ฐ์ง๋ง, ์๋ฌธ์์ |
%r | 12์๊ฐ์ ์๊ฐ (์, 11:11:04 PM, ์คํ 11์ 11๋ถ 04์ด) - local ๊ธฐ์ค |
%R | 24์๊ฐ์ ์๊ฐ๊ณผ ๋ถ (%H:%M๊ณผ ๋น์ท) |
%s | 1970-01-01 00:00:00 UTC ์ดํ๋ก ์ง๋ ์ด |
%S | ์ด (00..60) |
%t | ํญ ๋ฌธ์ |
%T | ์๊ฐ (์ฆ, %H:%M:%S) |
%u | ์ฃผ์ค ์์ผ (1..7); 1์ ์์์ผ |
%U | ์ผ์์ผ ๊ธฐ์ค์ผ๋ก 1๋ ์ค ๋ช ๋ฒ์งธ ์ฃผ (00..53) |
%V | ์์์ผ ๊ธฐ์ค์ผ๋ก 1๋ ์ค ๋ช ๋ฒ์งธ ์ฃผ (01..53) - ISO |
%w | ์ฃผ์ค ์์ผ (0..6), 0์ ์ผ์์ผ |
%W | ์์์ผ ๊ธฐ์ค์ผ๋ก 1๋ ์ค ๋ช ๋ฒ์งธ ์ฃผ (00..53) |
%x | ๋ ์ง (์, 12/31/99) - local ๊ธฐ์ค |
%X | ์๊ฐ (์, 23:13:48) - local ๊ธฐ์ค |
%y | ๋ ์๋ฆฌ ์ฐ๋ (00..99) |
%Y | ๋ค ์๋ฆฌ ์ฐ๋ (1970...) |
%z | +hhmm ์ซ์ ํ์์กด (์, -0400) |
%:z | +hh:mm ์ซ์ ํ์์กด (์, -04:00) |
%::z | +hh:mm:ss ์ซ์ ํ์์กด (์, -04:00:00) |
%:::z | ์ถ๊ฐ๋ ํ์์กด (์, -04, +05:30) |
%Z | ์ํ๋ฒณ ํ์์กด ์ฝ์ด (์, KST) |
# '%'๋ฌธ์๋ฅผ ์ถ๋ ฅ
$ date +%%
%
# '์์ผ'์ ๊ฐ๋ตํ ๋ฌธ์ํํ๋ก ์ถ๋ ฅ
$ date +%a # ์ผ์์ผ
Sun
# '์์ผ'์ ๋ฌธ์ํํ๋ก ์ถ๋ ฅ
$ date +%A # ์ผ์์ผ
Sunday
# '์'์ ๊ฐ๋ตํ ๋ฌธ์ํํ๋ก ์ถ๋ ฅ
$ date +%b # 1์
Jan
# '์'์ ๋ฌธ์ํํ๋ก ์ถ๋ ฅ
$ date +%B # 1์
January
# ๋ก์ปฌ์ ์ค์ ๋ ํ์์ผ๋ก '์ผ์'๋ฅผ ์ถ๋ ฅ
$ date +%c # 2017-01-01 00:00:00
Sun 01 Jan 2017 12:00:00 AM KST
# '์ฐ๋'์์ ์ฒซ ๋์๋ฆฌ๋ง ์ถ๋ ฅ
$ date +%C # 2017-01-01
20
# '์ผ'์ 0์ ํฌํจํ ์ซ์ํํ๋ก ์ถ๋ ฅ
$ date +%d # 2017-01-01
01
# '์/์ผ/๋
' ํ์์ผ๋ก ์ถ๋ ฅ(+%m/%d/%y์ ๋์ผ)
$ date +%D # 2017-01-01
01/01/17
# '์ผ'์ ๊ณต๋ฐฑ์ ํฌํจํ ์ซ์ํํ๋ก ์ถ๋ ฅ(+%_d์ ๋์ผ)
$ date +%e # 2017-01-01
1
# '๋
-์-์ผ'ํ์์ผ๋ก ์ถ๋ ฅ(+%Y-%m-%d์ ๋์ผ)
$ date +%e # 20170101
2017-01-01
# '์ฐ๋'์์ ๋ง์ง๋ง ๋์๋ฆฌ๋ง ์ถ๋ ฅ(+%G ์ฐธ์กฐ)
# ISO(๊ตญ์ ํ์คํ๊ธฐ๊ตฌ)์ ๊ท์ ์ ๋ฐ๋ผ 2017๋
๋์ฌ๋ ์์ง 52์ฃผ์ฐจ๊ฐ ๋๋์ง ์์์ผ๋ฉด 2016๋
๋๋ก ๊ฐ์ฃผ(+%V ์ฐธ์กฐ)
$ date +%g # 2017-01-01
16
# '์ฐ๋'๋ฅผ ์ถ๋ ฅ
# ๋ง์ฐฌ๊ฐ์ง๋ก ISO์ ๊ท์ ์ ๋ฐ๋ผ 2017๋
๋์ง๋ง 2016๋
๋๋ก ํํ(+%V ์ฐธ์กฐ)
$ date +%G # 2017-01-01
2016
# '์'์ ๊ฐ๋ตํ ๋ฌธ์ํํ๋ก ์ถ๋ ฅ(+%b์ ๋์ผ)
$ date +%h # 1์
Jan
# '์'๋ฅผ 0์ ํฌํจํ 24์ ํ์์ผ๋ก ์ถ๋ ฅ(00..23)
$ date +%H # 17:00:00
17
# '์'๋ฅผ 0์ ํฌํจํ 12์ ํ์์ผ๋ก ์ถ๋ ฅ(01..12)
$ date +%I # 17:00:00
05
# ํด๋น๋
๋์ 1์1์ผ์ 1์ผ์งธ๋ก ์์ํ์ฌ ๋ช์ผ์งธ์ธ์ง ์ถ๋ ฅ(001..366)
$ date +%j # 2017-02-01
032
# '์'๋ฅผ ๊ณต๋ฐฑ์ ํฌํจํ 24์ ํ์์ผ๋ก ์ถ๋ ฅ( 0..23, +%_H์ ๋์ผ)
$ date +%k # 09:00:00
9
$ date +%k # 18:00:00
18
# '์'๋ฅผ ๊ณต๋ฐฑ์ ํฌํจํ 12์ ํ์์ผ๋ก ์ถ๋ ฅ( 1..12, +%_I์ ๋์ผ)
$ date +%l # 09:00:00
9
$ date +%l # 18:00:00
6
# '์'์ ์ซ์ํํ๋ก ์ถ๋ ฅ(01..12)
$ date +%m # 1์
01
# '๋ถ'์ ์ถ๋ ฅ(00..59)
$ date +%M # 12:34:56
34
# ์๋ก์ด ์ค์ ์ถ๋ ฅ(๊ฐํ๋ฌธ์)
$ date +%n%F # 2017-12-25
(๊ฐํ)
2017-12-25
$ date +%D%n # 2017-12-25
(๊ฐํ)
12/25/17
# '๋๋
ธ์ด'๋ฅผ ์ถ๋ ฅ(000000000..999999999)
$ date +%N # 09:00:00.123456789
123456789
$ date +%3N # 09:00:00.123456789
123
# '์ค์ /์คํ'๋ฅผ ์ถ๋ ฅ(AM/PM)
$ date +%p # 09:00:00
AM
$ date +%p # 18:00:00
PM
# '์ค์ /์คํ'๋ฅผ ์ถ๋ ฅ(am/pm)
$ date +%P # 09:00:00
am
$ date +%P # 18:00:00
pm
# '์:๋ถ:์ด ์ค์ /์คํ'๋ฅผ 12์ ํ์์ผ๋ก ์ถ๋ ฅ(+'%H:%M:%S %p'์ ๋์ผ)
$ date +%r # 18:00:00
06:00:00 PM
# '์:๋ถ'์ 24์ ํ์์ผ๋ก ์ถ๋ ฅ(+%H:%M๊ณผ ๋์ผ)
$ date +%R # 18:00:00
18:00
# ํ์ ์ธ๊ณ์(UTC)๋ฅผ ๊ธฐ์ค์ผ๋ก 1970-01-01 00:00:00๋ถํฐ ํด๋น์ผ์๊น์ง ๊ณ์ฐํ '์ด'๋ฅผ ์ถ๋ ฅ
# ํ๊ตญ ํ์ค์๋ KST์ด๋ฏ๋ก UTC๊ธฐ์ค +9์๊ฐ ๋ถํฐ ์ธก์
$ date +%s # 1970-01-01 09:00:59
59
$ date +%s # 2017-01-01 09:00:00
1483228800
# '์ด'๋ฅผ ์ถ๋ ฅ(00..60)
$ date +%S # 12:34:56
56
# ํญ๋ฌธ์๋ฅผ ์ฝ์
$ date +%t%D # 2017-01-01
( ํญ )01/01/17
$ date +%H%t%M%t%S # 12:34:56
12 34 56
# ์๊ฐ์ ์ถ๋ ฅ(+%H:%M:%S์ ๋์ผ)
$ date +%T # 12:34:56
12:34:56
# '์์ผ'์ ์ซ์ํํ๋ก ์ถ๋ ฅ(1..7, 1=Monday)
$ date +%u # ์ผ์์ผ
7
# ํด๋น๋
๋์ ์ฒซ ์ผ์์ผ์ 1์ฃผ์งธ๋ก ์์ํ์ฌ ๋ช์ฃผ์งธ์ธ์ง๋ฅผ ์ถ๋ ฅ(00..53)
$ date +%U # 2016-01-01(๊ธ)
00
$ date +%U # 2016-12-31(์)
52
$ date +%U # 2017-01-01(์ผ)
01
# ๊ตญ์ ํ์คํ ๊ธฐ๊ตฌ ๊ท์ ์ ๋ฐ๋ผ, ํด๋น๋
๋์ ์ฒซ ์์์ผ์ 1์ฃผ์งธ๋ก ์์ํ์ฌ ๋ช์ฃผ์งธ์ธ์ง๋ฅผ ์ถ๋ ฅ(01..53)
$ date +%V # 2016-01-01(๊ธ)
53
$ date +%V # 2017-01-01(์ผ)
52
$ date +%V # 2017-01-02(์)
01
# '์์ผ'์ ์ซ์ํํ๋ก ์ถ๋ ฅ(0..6, 0=Sunday)
$ date +%w # ํ ์์ผ
6
# ํด๋น๋
๋์ ์ฒซ ์์์ผ์ 0์ฃผ์งธ๋ก ์์ํ์ฌ ๋ช์ฃผ์งธ์ธ์ง๋ฅผ ์ถ๋ ฅ(00..53)
$ date +%w # 2017-02-01
05
# '์/์ผ/๋
'ํ์์ผ๋ก ์ถ๋ ฅ
$ date +%x # 2017-12-25
12/25/2017
# '์:๋ถ:์ด ์ค์ /์คํ'ํ์์ผ๋ก ์ถ๋ ฅ(+%r๊ณผ ๋์ผ)
$ date +%X # 09:00:00
09:00:00 AM
# '์ฐ๋'์์ ๋ง์ง๋ง ๋์๋ฆฌ๋ง ์ถ๋ ฅ
$ date +%y # 2017-01-01
17
# '์ฐ๋'๋ฅผ ์ถ๋ ฅ
$ date +%Y # 2017-01-01
2017
# UTC(์ธ๊ณํ์ ์)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ก์ปฌ์ ์๊ฐ์ด ์ผ๋ง๋ ์ฐจ์ด๋๋์ง '+/-์๋ถ'ํ์์ผ๋ก ์๋ ค์ค.(ํ๊ตญ์ KST๋ก UTC์ +0900์ฐจ์ด๊ฐ ๋จ.)
$ date +%z # KST
+0900
$ date -u +%z # UTC
+0000
# UTC(์ธ๊ณํ์ ์)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ก์ปฌ์ ์๊ฐ์ด ์ผ๋ง๋ ์ฐจ์ด๋๋์ง '+/-์:๋ถ'ํ์์ผ๋ก ์๋ ค์ค
$ date +%:z # KST
+09:00
# UTC(์ธ๊ณํ์ ์)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ก์ปฌ์ ์๊ฐ์ด ์ผ๋ง๋ ์ฐจ์ด๋๋์ง '+/-์:๋ถ:'ํ์์ผ๋ก ์๋ ค์ค
$ date +%::z # KST
+09:00:00
# UTC(์ธ๊ณํ์ ์)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ก์ปฌ์ ์๊ฐ์ด ์ผ๋ง๋ ์ฐจ์ด๋๋์ง '+/-์'ํ์์ผ๋ก ์๋ ค์ค
$ date +%:::z # KST
+09
[์์ฃผ ์ฌ์ฉ๋๋ ํฌ๋งท]
- %Y : ๋ ๋ (YY)
- %m : ์ (mm)
- %d : ์ผ์ (dd)
- %H : ์๊ฐ (HH)
- %M : ๋ถ (MM)
- %S : ์ด (SS)
[์ด์ธ ํ์ฉํ๋ฉด ์ข์ ํฌ๋งท]
- %F : ๋ ์์ผ (YYYY-mm-dd) ํํ๋ก ์ถ๋ ฅ
- %T : ์๊ฐ (HH:MM:SS) ํํ๋ก ์ถ๋ ฅ
- %u : ์ค๋์ ํด๋นํ๋ ์์ผ์ ์ซ์๋ก ํํ ( 1 = Monday, 2 = Tuesday ... 7 = Sunday )
- %U : ํ์ฌ ์ฃผ์ ์ผ์์ผ ( ISO ๊ธฐ์ค์ด๋ฉฐ ํ๊ตญ์๊ฐ๊ณผ ๋น๊ตํ์ฌ ํ๋ฃจ์ฉ ๋ฆ๋ค )
[๊ธฐํ ํฌ๋งท]
- %U(=%W) : 1๋
์ค ์ผ์์ผ์ ์ฒซ ๋ฒ์งธ ๋ ๋ก ์ง์ ํ์ฌ ์ด๋ฒ์ฃผ์ ํด๋นํ๋ ์ฃผ๋ฅผ ํ์ธ(0๋ถํฐ ์์ -> 00..53)
- %V : ISO ํ์ค์ ๋ฐ๋ฅด๋ฉฐ, ์์์ผ์ ์ฒซ ๋ฒ์งธ ๋ ๋ก ์ง์ ํ์ฌ ์ด๋ฒ์ฃผ์ ํด๋นํ๋ ์ฃผ๋ฅผ ํ์ธ(1๋ถํฐ ์์ -> 01..53)
- %w - ์์ผ์ ์ซ์๋ก ํํ(0 ~ 6) 0 = ์ผ์์ผ / 1 = ์์์ผ ...
%Y %m %d %H %M %S
๋ ๋, ์, ์ผ, ์, ๋ถ, ์ด
%a %A %b
์์ผ, ์์ ์์ด๋ก
$ date '+%Y-%m-%d' #๋
๋-์-์ผ
2019-06-20
$ date "+%Y-%m-%d %H:%M:%S" # YYYY-MM-DD HH24:MI:SS ํฌ๋งท
2020-04-12 13:21:10
$ date "+%Y-%m-%d %I:%M:%S %p" #์ค์ /์คํ ์ถ๊ฐ ์ถ๋ ฅ
2020-04-12 13:21:10 AM
$ date --date='tomorrow' '+%Y-%m-%d' # ๋ด์ผ์ ํฌ๋งท์ผ๋ก ์ถ๋ ฅ
2019-06-21
$ date -d "+1 months +3 days" "+%Y-%m-%d" # ํน์ ๋ ์ง๋ฅผ ์ ํด์ง ํฌ๋งท์ผ๋ก ์ถ๋ ฅ
2020-05-15
$ date '+%H:%M' #์๊ฐ:๋ถ
23:52
$ data +%s # unix time stamp ๋ก ํ์
1596521474
$ date '+%a'
Thu
$ date '+%A'
Thursday
$ date '+%b'
Jun
$ date '+B'
June
# ์ฌํด์์ ํ์ฌ๊น์ง ๋ช์ผ์ด ์ง๋ฌ๋์ง
$ date +%j
171
# ํ์ผ๋ช
์ ๋ ์ง ๋ฃ๊ธฐ
$ touch $(date '+%Y%m%d'); ls
20190620.txt
# ํน์ ๋ ์ง๊ฐ ๋ค์ด๊ฐ ํ์ผ ์ถ์ถํ๊ธฐ
$ find /home/jhnyang/log "*$(date -d '2 days ago' '+%Y%m%s')*.txt"
# ์์คํ
๋ ์ง ๋ณ๊ฒฝ
$ sudo date +%Y%m%d --set="20200412"
# ๋ณ์์ ๋ ์ง ๋ฃ๊ธฐ
$ TIME=$(date +%FT%T)
$ echo $TIME
2020-10-27T12:21:55
#!/usr/bin/bash
# ๋ ๋ ์ง์ ์ฐจ์ด ๊ตฌํ๊ธฐ
FIRST_DATE=`date -d "20190620" "+%s"` # ํด๋น ๋ ์ง ํ์์คํฌํ ๊ตฌํ๊ธฐ
SECOND_DATE=`date -d "20190120" "+%s"`
DAY_in_SECONDS=`expr 24 \* 3600` #1์ผ์ ์ด๋ก ๋ณํ > 86400
# ๋๋ ์ง๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌํ๊ณ ์ผ์(์ด๋จ์)๋ก ๋๋๊ธฐ
INTERVAL=`echo "(${FIRST_DATE} - ${SECOND_DATE}) / $DAY_in_SECONDS" | bc`
echo $INTERVAL
ISO8601 ํ์ค ๊ท๊ฒฉ ์ถ๋ ฅ (-I)
[TIMESPEC] ํฌ๋งท์ ๋ค์ด๊ฐ๋ ์ธ์๋ก๋ hours, minutes, date, seconds, ns๊ฐ ์๋ค.
$ date -I # (or) -I'date'
2017-01-01
$ date -I'hours'
2017-01-01T00+0900
$ date -I'minutes'
2017-01-01T00:00+0900
$ date -I'second'
2017-01-01T00:00:00+0900
$ date -I'ns'
2017-01-01T00:00:00,000000000+0900
$ date +%FT%T # (YYYY-mm-dd)T(HH:MM:SS)
2020-10-27T12:00:38
RFC2822 ํ์ค ๊ท๊ฒฉ ์ถ๋ ฅ (--rfc-2822)
# RFC2822 ํ์ ํฌ๋งท (-R, --rfc-2822) #
$ date -R
Sun, 01 Jan 2017 00:00:00 +0900
RFC3339 ํ์ค ๊ท๊ฒฉ ์ถ๋ ฅ (--rfc-3339)
# RFC3339 ํ์ ํฌ๋งท (--rfc-3339=[TIMESPEC]) #
# [TIMESPEC] ์ธ์ : date, seconds, ns
$ date --rfc-3339='date'
2017-01-01
$ date --rfc-3339='second'
2017-01-01 00:00:00+09:00
$ date --rfc-3339='ns'
2017-01-01 00:00:00.000000000+09:00
UTC ํ์ค ๊ท๊ฒฉ ์ถ๋ ฅ (--utc)
# UTC(์ธ๊ณํ์ ์)๋ก ์ถ๋ ฅ (-u, --utc, --universal) #
$ date -u
Sun Jan 1 00:00:00 UTC 2017
rdate ๋ช ๋ น์ด
๋ฆฌ๋ ์ค๋ ์๋ฒ๋ก ์ด์๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์๋ฒ ์๊ฐ์ ์๋ฒ์์ ๋์ํ๋ ์ฌ๋ฌ ์๋น์ค์ ์ํฅ์ ์ฃผ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ํญ์ ์ ํํ ์๊ฐ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๊ฒ์ด ํ์์ด๋ค.
์ ํํ ์๊ฐ ์ ๋ณด ์ ์ง๋ฅผ ์ํด ํ์์๋ฒ(Time Server)์ ์๊ฐ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์์ ๊ธฐ์ค ์๊ฐ์ผ๋ก ์ผ์ ์ ์๋๋ฐ, rdate ๋ช ๋ น์ด๋ ๋ฆฌ๋ ์ค์ ์๊ฐ์ timeserver์ ๋๊ธฐํํ๋ ๋ช ๋ น์ด ์ด๋ค.
rdate ์ค์น
# ์ฐ๋ถํฌ
$ apt-get install rdate
# ์ผํ ์ค
$ yum -y install rdate
rdate ์ฌ์ฉ๋ฒ
- timeserver ์ ์๊ฐ ์๋ฒ ์ฃผ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ํด๋น ์๋ฒ์ ์๊ฐ ๋๊ธฐํ๋ฅผ ์ํํ๊ฒ ๋๋ค.
$ rdate -s <timeserver>
์๊ฐ ์๋ฒ ๋ชฉ๋ก (timeserver)
- ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์๊ฐ ์๋ฒ ๋ชฉ๋ก์ด๋ค. ์๋ ์ค์ ํ๋์ ์๋ฒ๋ฅผ ์ ํํ์ฌ ๋๊ธฐํ ํด์ฃผ๋ฉด ๋๋ค.
- time.bora.net
- time.nuri.net
- time.windows.com
- ntp.kornet.net
- time.nist.gov
# time.bora.net ์ ์๊ฐ ๋๊ธฐํ
# ์ ํํ ์๊ฐ์ ์ ์งํ๊ธฐ ์ํด rdate ๋ช
๋ น์ ์ ๊ธฐ์ ์ผ๋ก ์คํํ๊ณ ์ ํ๋ค๋ฉด, crontab์ ๋ฑ๋กํ๋ฉด ๋๋ค.
$ rdate -s time.bora.net
# ์ฐธ๊ณ ์๋ฃ
https://pakss328.medium.com/linux-date-%EB%AA%85%EB%A0%B9%EC%96%B4-facd71b06e49
https://blog.azulpintor.io/entry/Linux-date-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95
https://jp-hosting.jp/linux-210808/