strftime(3) - wariua/manpages-ko GitHub Wiki
strftime - λ μ§ λ° μκ° μμν
#include <time.h>
size_t strftime(char *s, size_t max, const char *format,
const struct tm *tm);
strftime()
ν¨μλ λΆν μκ° tm
μ μμ format
μ λ°λΌ λ³νν΄μ κ·Έ κ²°κ³Όλ₯Ό ν¬κΈ° max
μΈ λ¬Έμ λ°°μ΄ s
μ μ§μ΄λ£λλ€. λΆν μκ° κ΅¬μ‘°μ²΄ tm
μ <time.h>
μ μ μλΌ μλ€. ctime(3)λ μ°Έκ³ .
μμμ λ μ’ λ£ λ¬Έμμ΄μ΄λ©° λ³ν μ§μ μλΌλ νΉλ³ν λ¬Έμ μ΄μ ν¬ν¨ν μ μλ€. κ° λ³ν μ§μ μλ '%' λ¬Έμλ‘ μμν΄μ λ³ν μ§μ λ¬ΈμλΌλ μ΄λ€ λ€λ₯Έ λ¬Έμλ‘ λλλ€. κ·Έ μΈμ λͺ¨λ λ¬Έμ μ΄μ μΌλ° λ¬Έμ μ΄μ΄λ€.
μΌλ° λ¬Έμ μ΄μ λ¬Έμλ€(λ λ°μ΄νΈ ν¬ν¨)μ format
μμ s
λ‘ κ·Έλλ‘ λ³΅μ¬νλ€. νμ§λ§ λ³ν μ§μ μμ λ¬Έμλ€μ μλ λͺ©λ‘μ λμ¨ λλ‘ λ°κΏμ λ£λλ€. μ΄ λͺ©λ‘μλ tm
ꡬ쑰체μ μ΄μ© νλ(λ€)λ μ ν μλ€.
%a |
νμ¬ λ‘μΊμ λ°λ₯Έ μμΌ μΆμ½ μ΄λ¦. (tm_wday λ‘ κ³μ°) |
%A |
νμ¬ λ‘μΊμ λ°λ₯Έ μμΌ μλ μ΄λ¦. (tm_wday λ‘ κ³μ°) |
%b |
νμ¬ λ‘μΊμ λ°λ₯Έ μ μΆμ½ μ΄λ¦. (tm_mon μΌλ‘ κ³μ°) |
%B |
νμ¬ λ‘μΊμ λ°λ₯Έ μ μλ μ΄λ¦. (tm_mon μΌλ‘ κ³μ°) |
%c |
νμ¬ λ‘μΊμμ λ§μ΄ μ°λ λ μ§ λ° μκ° νν. |
%C |
2μ리 μ μλ‘ λ μΈκΈ° λ²νΈ (λ
/100). (SU) (tm_year λ‘ κ³μ°) |
%d |
μμ§μλ‘ λ μ μ€ λ μ§. (01μμ 31κΉμ§) (tm_mday λ‘ κ³μ°) |
%D |
%m/%d/%y μ κ°μ. (μ½... λ―Έκ΅ μ μ©. λ€λ₯Έ λλΌμμλ %d/%m/%y κ° κ½€ ννλ€λ κ±Έ λ―Έκ΅μΈλ€μ μμ λ νμκ° μλ€. μ¦ κ΅μ μ μΈ λ§₯λ½μμ μ΄ νμμ λͺ
ννμ§ μμΌλ―λ‘ μ°μ§ μλ κ² μ’λ€.) (SU) |
%e |
%d μ²λΌ μμ§μλ‘ λ μ μ€ λ μ§μ΄λ, μμ 0μ 곡백μΌλ‘ λ°κΎΌ κ². (SU) (tm_mday λ‘ κ³μ°) |
%E |
μμμ: λ€λ₯Έ νμ μ¬μ©. μλ μ°Έκ³ . (SU) |
%F |
%Y-%m-%d μ κ°μ. (ISO 8601 λ μ§ νμ) (C99) |
%G |
ISO 8601 μ£Ό κΈ°μ€μ μΈκΈ° ν¬ν¨ν μμ§μλ‘ λ μ°λ. (NOTES μ°Έκ³ .) 4μ리 μ°λκ° ISO μ£Ό λ²νΈ(%V μ°Έκ³ )μ λΆν©νλ€. κ·Έλμ %Y μ νμ λ° κ°μ΄ κ°λ ISO μ£Ό λ²νΈκ° μ§λν΄λ λ€μν΄μ μνλ©΄ κ·Έ μ°λλ₯Ό μ΄λ€. (TZ) (tm_year , tm_yday , tm_wday λ‘ κ³μ°) |
%g |
%G μ κ°λ μΈκΈ° μμ΄. μ¦ 2μ리 μ°λ. (00-99) (TZ) (tm_year , tm_yday , tm_wday λ‘ κ³μ°) |
%h |
%b μ κ°μ. (SU) |
%H |
μμ§μλ‘ λ 24μκ° μκ³ μκ°. (00μμ 23κΉμ§) (tm_hour λ‘ κ³μ°) |
%I |
μ μ§μλ‘ λ 12μκ° μκ³ μκ°. (01μμ 12κΉμ§) (tm_hour λ‘ κ³μ°) |
%j |
μμ§μλ‘ λ μ° μ€ λ μ§. (001μμ 366κΉμ§) (tm_yday λ‘ κ³μ°) |
%k |
μμ§μλ‘ λ (24μκ° μκ³) μκ°. (0μμ 23κΉμ§) 1μ리 μ μμλ κ³΅λ°±μ΄ λΆμ. (%H μ°Έκ³ .) (tm_hour λ‘ κ³μ°) (TZ) |
%l |
μμ§μλ‘ λ (12μκ° μκ³) μκ°. (1μμ 12κΉμ§) 1μ리 μ μμλ κ³΅λ°±μ΄ λΆμ. (^I μ°Έκ³ .) (tm_hour λ‘ κ³μ°) (TZ) |
%m |
μμ§μλ‘ λ μ. (01μμ 12κΉμ§) (tm_mon μΌλ‘ κ³μ°) |
%M |
μμ§μλ‘ λ λΆ. (00μμ 59κΉμ§) (tm_min μΌλ‘ κ³μ°) |
%n |
κ°ν λ¬Έμ. (SU) |
%O |
μμμ: λ€λ₯Έ νμ μ¬μ©. μλ μ°Έκ³ . (SU) |
%p |
ν΄λΉ μκ° κ°μ λ°λΌ "AM"μ΄λ "PM", λλ νμ¬ λ‘μΊμ ν΄λΉ λ¬Έμμ΄. μ μ€λ "PM"μΌλ‘ μ·¨κΈνκ³ μμ μ "AM"μΌλ‘ μ·¨κΈνλ€. (tm_hour λ‘ κ³μ°) |
%P |
%p μ κ°λ μλ¬Έμ. μ¦ "am"μ΄λ "pm", λλ νμ¬ λ‘μΊμ ν΄λΉ λ¬Έμμ΄. (tm_hour λ‘ κ³μ°) (GNU) |
%r |
μ€μ μ€νλ₯Ό νκΈ°ν μκ°. POSIX λ‘μΊμμλ %I:%M:%S %p μ κ°λ€. (SU) |
%R |
24μκ° νκΈ°λ²μΌλ‘ λ μκ° (%H:%M ). (SU) μ΄λ₯Ό ν¬ν¨ν λ²μ μ μλ %T λ₯Ό 보λΌ. |
%s |
μν¬ν¬ 1970-01-01 00:00:00 +0000 (UTC) μ΄νμ μ΄ μ. (TZ) (mktime(tm) μΌλ‘ κ³μ°) |
%S |
μμ§μλ‘ λ μ΄. (00μμ 60κΉμ§) (κ°λ μλ μ€μ΄λ₯Ό μν΄ λ²μκ° 60κΉμ§μ.) (tm_sec μΌλ‘ κ³μ°) |
%t |
ν λ¬Έμ. (SU) |
%T |
24μκ° νκΈ°λ²μΌλ‘ λ μκ° (%H:%M:%S ). (SU) |
%u |
μμ§μλ‘ λ μ£Ό μ€ λ λ²νΈ. 1μμ 7κΉμ§μ΄λ©° μμμΌμ΄ 1. %w μ°Έκ³ . (tm_wday λ‘ κ³μ°) (SU) |
%U |
μμ§μλ‘ λ λΉν΄ μ€ μ£Ό λ²νΈ. 00μμ 53κΉμ§μ΄λ©°, 첫 λ²μ§Έ μΌμμΌμ 01λ² μ£Ό 첫λ λ‘ μΌλλ€. %V μ %W λ μ°Έκ³ . (tm_yday μ tm_wday λ‘ κ³μ°) |
%V |
μμ§μλ‘ λ ISO 8601 λ°©μ λΉν΄ μ€ μ£Ό λ²νΈ. (μλ μ°Έκ³ .) 01μμ 53κΉμ§μ΄λ©°, μ΅μ 4μΌμ΄ μν΄μ μλ 첫 λ²μ§Έ μ£Όκ° 1λ² μ£Όμ΄λ€. %U μ %W λ μ°Έκ³ . (tm_year , tm_yday , tm_wday λ‘ κ³μ°) (SU) |
%w |
μμ§μλ‘ λ μ£Ό μ€ λ λ²νΈ. 0μμ 6κΉμ§μ΄λ©° μΌμμΌμ΄ 0. %u μ°Έκ³ . (tm_wday λ‘ κ³μ°) |
%W |
μμ§μλ‘ λ λΉν΄ μ€ μ£Ό λ²νΈ. 00μμ 53κΉμ§μ΄λ©°, 첫 λ²μ§Έ μμμΌμ 01λ² μ£Ό 첫λ λ‘ μΌλλ€. (tm_yday μ tm_wday λ‘ κ³μ°) |
%x |
νμ¬ λ‘μΊμμ λ§μ΄ μ°λ μκ° μλ λ μ§ νν. |
%X |
νμ¬ λ‘μΊμμ λ§μ΄ μ°λ λ μ§ μλ μκ° νν. |
%y |
μΈκΈ° μμ΄ μμ§μλ‘ λ μ°λ. (00μμ 99κΉμ§) (tm_year λ‘ κ³μ°) |
%Y |
μΈκΈ° ν¬ν¨ν μμ§μλ‘ λ μ°λ. (tm_year λ‘ κ³μ°) |
%z |
+hhmm λλ -hhmm μ«μ νμ μκ°λ (μ¦ UTCμμ μκ° λ° λΆ μ°¨μ΄). (SU) |
%Z |
μκ°λ μ΄λ¦ λλ μΆμ½λͺ . |
%+ |
date(1) νμμ λ μ§ λ° μκ°. (TZ) (glibc2μμ μ§μνμ§ μμ.) |
%% |
'%' λ¬Έμ μ체. |
λͺλͺ λ³ν μ§μ μλ€μμ λ³ν μ§μ λ¬Έμ μμ E
λ O
μμμλ₯Ό λΆμ¬μ λ체 νμμ μ¨μΌ νλ€κ³ νμν μ μλ€. νμ¬ λ‘μΊμμ λ체 νμ λ΄μ§ μ§μ μκ° μ‘΄μ¬νμ§ μλ κ²½μ°μλ μμ μμ΄ λ³ν μ§μ μλ₯Ό μ΄ κ²μ²λΌ λμνκ² λλ€. (SU) λ¨μΌ μ λμ€ κ·κ²©μμλ %Ec
, %EC
, %Ex
, %EX
, %Ey
, %EY
, %Od
, %Oe
, %OH
, %OI
, %Om
, %OM
, %OS
, %Ou
, %OU
, %OV
, %Ow
, %OW
, %Oy
λ₯Ό μΈκΈνλλ°, O
μμμμ ν¨κ³Όλ λ체 μ«μ μ¬λ³Ό(κ°λ Ή λ‘λ§ μ«μ)μ μ°λ κ²μ΄κ³ E
μμμμ ν¨κ³Όλ λ‘μΊλ³ λ체 ννμ μ°λ κ²μ΄λ€.
κ²°κ³Ό λ¬Έμμ΄μ΄ μ’
λ£ λ λ°μ΄νΈλ₯Ό ν¬ν¨ν΄μ max
λ°μ΄νΈλ₯Ό μ΄κ³Όνμ§ μλ κ²½μ°μλ λ°°μ΄ s
μ μ§μ΄λ£μ (μ’
λ£ λ λ°μ΄νΈλ₯Ό λΊ) λ°μ΄νΈ μλ₯Ό strftime()
μ΄ λ°ννλ€. κ²°κ³Ό λ¬Έμμ΄μ (μ’
λ£ λ λ°μ΄νΈ ν¬ν¨) κΈΈμ΄κ° max
λ°μ΄νΈλ₯Ό λκ² λ κ²½μ°μλ strftime()
μ΄ 0μ λ°ννλ©°, μ΄λ λ°°μ΄μ λ΄μ©λ¬Όμ κ·μ λΌ μμ§ μλ€.
μ°Έκ³ λ‘ λ°ν κ° 0μ΄ λ°λμ μ€λ₯λ₯Ό λνλ΄λ 건 μλλ€. μλ₯Ό λ€μ΄ μ¬λ¬ λ‘μΊμμ %p
λ λΉ λ¬Έμμ΄μ΄ λλ€. format
λ¬Έμμ΄μ΄ λΉμ΄ μμ΄λ λ§μ°¬κ°μ§λ‘ λΉ λ¬Έμμ΄μ΄ λμ¨λ€.
νκ²½ λ³μ TZ
λ° LC_TIME
μ μ΄λ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
μΈν°νμ΄μ€ | μμ± | κ° |
---|---|---|
strftime() |
μ€λ λ μμ μ± | MT-Safe env locale |
SVr4, C89, C99. ANSI Cμ μλ λ³ν(νμ μμ), λ¨μΌ μ λμ€ κ·κ²©μ μλ λ³ν(SU νμ), Olsonμ timezone ν¨ν€μ§μμ μ 곡νλ λ³ν(TZ νμ), glibcμμ μ 곡νλ λ³ν(GNU νμ) μ¬μ΄μλ μ격ν ν¬ν¨ κ΄κ³κ° μλ€. λ¨ glibc2μμλ %+
λ₯Ό μ§μνμ§ μλλ€. ννΈμΌλ‘ glibc2μλ λ€λ₯Έ μ¬λ¬ νμ₯μ΄ μλ€. POSIX.1μμλ ANSI Cλ§μ μ°Έμ‘°νλ€. νμ§λ§ POSIX.2μμλ date(1)
νμμ strftime()
μλ μ μ©λ μ μμ μ¬λ¬ νμ₯λ€μ κΈ°μ νλ€. %F
λ³νμ C99 λ° POSIX.1-2001μ μλ€.
SUSv2μμλ %S
λ³νμμ νμ© λ²μκ° 00μμ 61κΉμ§μ΄λ€. μ΄λ 1λΆμ μ€μ΄κ° λ λ² ν¬ν¨λ μ μλ μ΄λ‘ μ κ°λ₯μ±μ λλΉνκΈ° μν κ²μ΄λ€. (μ§κΈκΉμ§ κ·Έλ° κ²½μ°λ ν λ²λ μμλ€.)
%G
, %g
, %V
λ ISO 8601 νμ€μ μ μλ μ£Ό κΈ°μ€ μ°λλ‘λΆν° κ³μ°ν κ°λ€μ λ΄λλλ€. μ΄ μ²΄κ³μμλ μμμΌλΆν° ν μ£Όκ° μμνλ©°, 첫 λ²μ§Έ μ£Όμ 01λ²μ λΆμ΄κ³ λ§μ§λ§ μ£Όλ 52λ²μ΄λ 53λ²μ΄ λλ€. 1λ² μ£Όλ 4μΌ μ΄μμ΄ μν΄μ μνλ 첫 λ²μ§Έ μ£Όμ΄λ€. (μ¦ 01λ² μ£Όλ λͺ©μμΌμ ν¬ν¨ν κ·Έν΄ μ²«μ§Έ μ£Όμ΄κΈ°λ νκ³ , 1μ 4μΌμ ν¬ν¨ν μ£Όμ΄κΈ°λ νλ€.) μν΄μ λ¬λ ₯ 첫 λ²μ§Έ μ£Όμμ 3μΌ μ΄νκ° κ·Έν΄μ μν λ ISO 8601 μ£Ό κΈ°λ° μ²΄κ³μμλ κ·Έ λ λ€μ μ ν΄μ 53λ² μ£Όλ‘ κ³μ°νλ€. μλ₯Ό λ€μ΄ 2010λ
1μ 1μΌμ κΈμμΌμ΄κ³ , κ·Έλμ κ·Έ λ¬λ ₯ μ£Όμ 3μΌλ§ 2010λ
μ μνλ€. λ°λΌμ ISO 8601 μ£Ό κΈ°λ° μ²΄κ³μμλ κ·Έ λ λ€μ 2009λ
(%G
)μ 53λ² μ£Ό(%V
)μ ν¬ν¨λλ κ±Έλ‘ λ³Έλ€. μ¦ ISO 8601 κΈ°μ€ 2010λ
μ 01λ² μ£Όλ 2010λ
1μ 4μΌ μμμΌμ μμνλ€.
glibcμμλ λ³ν μ§μ μ νμ₯μ λͺ κ°μ§ μ 곡νλ€. (μ΄ νμ₯λ€μ POSIX.1-2001μ λͺ
μΈλΌ μμ§ μμ§λ§ λͺλͺ λ€λ₯Έ μμ€ν
μμλ λΉμ·ν κΈ°λ₯μ μ 곡νλ€.) '%' λ¬Έμμ λ³ν μ§μ λ¬Έμ μ¬μ΄μ μ νμ μΌλ‘ νλκ·Έμ νλ νμ μ§μ ν μ μλ€. (E
λ° O
μμμκ° μλ κ²½μ°μλ κ·Έ μμ μ¨λ€.)
λ€μ νλκ·Έ λ¬Έμλ€μ νμ©νλ€.
_ |
(λ°μ€) μλ‘ λ κ²°κ³Ό λ¬Έμμ΄μ λ¨λ 곡κ°μ 곡백 λ¬Έμλ‘ μ±μ΄λ€. |
- |
(λμ) μλ‘ λ κ²°κ³Ό λ¬Έμμ΄μ λ¨λ 곡κ°μ μ±μ°μ§ μλλ€. |
0 |
μλ‘ λ κ²°κ³Ό λ¬Έμμ΄μ λ¨λ 곡κ°μ 0μΌλ‘ μ±μ΄λ€. κ·Έ λ³ν μ§μ λ¬Έμμ κΈ°λ³Έ λ°©μμ΄ κ³΅λ°± λ¬Έμλ‘ μ±μ°κΈ°λλΌλ 0μ μ΄λ€. |
^ |
κ²°κ³Ό λ¬Έμμ΄μ μνλ²³ λ¬Έμλ₯Ό λλ¬Έμλ‘ λ°κΎΌλ€. |
# |
κ²°κ³Ό λ¬Έμμ΄μ λμλ¬Έμλ₯Ό λ€λ°κΎΌλ€. (μ΄ νλκ·Έλ νΉμ λ³ν μ§μ λ¬Έμλ€μλ§ λμνλ©° κ·Έ μ€μμλ μ€μ λ‘λ %Z μμλ§ μ μ©νλ€.) |
μμ§μλ‘ λ ν μ§μ μκ° (μ‘΄μ¬νμ§ μμ μλ μλ) νλκ·Έ λ€μμ μ νμ μΌλ‘ μ¬ μ μλ€. νλμ μλ ν¬κΈ°κ° κ·Έ νλ³΄λ€ μμΌλ©΄ κ²°κ³Ό λ¬Έμμ΄ μΌμͺ½μ μ±μμ μ§μ ν νμΌλ‘ λ§μΆλ€.
μΆλ ₯ λ¬Έμμ΄μ΄ max
λ°μ΄νΈλ₯Ό λκ² λ κ²½μ°μ errno
λ₯Ό μ€μ νμ§ μλλ€. μ΄ λλ¬Έμ κ·Έ μ€λ₯ κ²½μ°μ format
λ¬Έμμ΄μ΄ μ λ²νκ² κΈΈμ΄ 0μΈ μΆλ ₯ λ¬Έμμ΄μ λ§λ€μ΄ λ΄λ κ²½μ°λ₯Ό ꡬλ³ν μ μλ€. POSIX.1-2001μμλ strftime()
μ λν΄ μ΄λ€ errno
μ€μ λ λͺ
μΈνκ³ μμ§ μλ€.
μΌλΆ λ²κ·Έ μλ gcc(1)
λ²μ λ€μμλ %c
μ¬μ© μ warning: `%c' yields only last 2 digits of year in some localesλΌκ³ λμ¨λ€. λ¬Όλ‘ νλ‘κ·Έλλ¨Έλ€μ λ§μ΄ μ°λ λ μ§ λ° μκ° ννμ΄ λμ€λ %c
λ₯Ό μ°λ κ² λ°λμ§νλ€. μ΄λ° gcc(1)
λ¬Έμ λ₯Ό νΌνκΈ° μν μ¨κ° ν¬νν μμ₯ λ°©λ²λ€μ λ§λ μ μλλ°, κ·Έ μ€ λΉκ΅μ κΉλν λ°©μμ μ€κ³ ν¨μλ₯Ό μΆκ°νλ κ²μ΄λ€.
size_t
my_strftime(char *s, size_t max, const char *fmt,
const struct tm *tm)
{
return strftime(s, max, fmt, tm);
}
μμ¦μ gcc(1)
μ -Wno-format-y2k
μ΅μ
μ΄ μμ΄μ κ·Έ κ²½κ³ λ₯Ό λ§μ μ μμΌλ―λ‘ μ μ°ν λ°©λ²μ΄ λλ νμμΉ μλ€.
RFC 2822 μ€μ λ μ§ νμ (%a λ° %bμλ μμ΄ λ‘μΊ)
"%a, %d %b %Y %T %z"
RFC 822 μ€μ λ μ§ νμ (%a λ° %bμλ μμ΄ λ‘μΊ)
"%a, %d %b %y %T %z"
μλ νλ‘κ·Έλ¨μΌλ‘ strftime()
λμμ μ€νν΄ λ³Ό μ μλ€.
λ€μμ glibcμ strftime()
ꡬνμ΄ λ΄λλ κ²°κ³Ό λ¬Έμμ΄ μμμ΄λ€.
$ ./a.out '%m'
Result string is "11"
$ ./a.out '%5m'
Result string is "00011"
$ ./a.out '%_5m'
Result string is " 11"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
char outstr[200];
time_t t;
struct tm *tmp;
t = time(NULL);
tmp = localtime(&t);
if (tmp == NULL) {
perror("localtime");
exit(EXIT_FAILURE);
}
if (strftime(outstr, sizeof(outstr), argv[1], tmp) == 0) {
fprintf(stderr, "strftime returned 0");
exit(EXIT_FAILURE);
}
printf("Result string is \"%s\"\n", outstr);
exit(EXIT_SUCCESS);
}
date(1)
, time(2), ctime(3), setlocale(3), sprintf(3), strptime(3)
2019-03-06