OS/Linux

๐Ÿง ๋ฆฌ๋ˆ…์Šค Date ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ• (๋‚ ์งœ ํฌ๋งท)

์ธํŒŒ_ 2022. 3. 20. 15:34

๋ฆฌ๋ˆ…์Šค-date-ํฌ๋งท

Date ๋ช…๋ น์–ด

๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„์—์„œ ์‹œ์Šคํ…œ ๋‚ ์งœ๋ฅผ ์•Œ๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋Œ€ํ‘œ์ ์œผ๋กœ date๊ฐ€ ์žˆ๋‹ค.

์ด์™ธ์—๋„ ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ฃผ๋ฉด ๋‹ค์–‘ํ•œ ๋‚ ์งœ ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณผ๊ฑฐ ๋‚ ์งœ ๊ตฌํ•˜๋Š” ๋“ฑ ๋‹จ์ˆœํ•ด ๋ณด์ด์ง€๋งŒ ์ •๋ง ๋‹ค์–‘ํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๋ช…๋ น์–ด๋‹ค.

 

date ๋ช…๋ น์–ด ์‚ฌ์šฉ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ)

  1. ์‹œ์Šคํ…œ ์„œ๋ฒ„ ์‹œ๊ฐ„ ์„ค์ •
  2. ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋‚ ์งœ ๊ฐ’์„ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์–ป๊ธฐ
  3. ๊ณผ๊ฑฐ ๋ฏธ๋ž˜ ๋ง์…ˆ ๋บ„์…ˆ ๋“ฑ ์›ํ•˜๋Š” ๋‚ ์งœ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์ฐจ์ด ๊ตฌํ•˜๊ธฐ
# 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์‹œ๋กœ ์„ค์ •

๋ฆฌ๋ˆ…์Šค-date-ํฌ๋งท

# ์‹œ์Šคํ…œ ์‹œ๊ฐ„์ด ๋™๊ธฐํ™” ํ•ด์ œ. ๊ทธ๋ž˜์•ผ ๋‚ ์งœ ๋ณ€๊ฒฝ์ด ์ ์šฉ๋œ๋‹ค.
$ 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/