strftime(3) Library Functions Manual strftime(3) strftime - (libc -lc) #include size_t strftime(size_t max; char s[restrict max], size_t max, const char *restrict format, const struct tm *restrict tm); size_t strftime_l(size_t max; char s[restrict max], size_t max, const char *restrict format, const struct tm *restrict tm, locale_t locale); strftime() tm format s max. tm . ctime(3). '%' . . ( ) format s. . () tm . %a . ( tm_wday.) ( nl_langinfo(3) ABDAY_{1-7} .) %A . ( tm_wday.) ( nl_langinfo(3) DAY_{1-7} .) %b . ( tm_mon.) ( nl_langinfo(3) ABMON_{1-12} .) %B . ( tm_mon.) ( nl_langinfo(3) MON_{1-12} .) %c . ( nl_langinfo(3) D_T_FMT %c ERA_D_T_FMT %Ec.) ( POSIX %a %b %e %H:%M:%S %Y.) %C (/100) . (SU) ( %EC .) ( tm_year.) %d ( 01 31). ( tm_mday.) %D %m/%d/%y. (-- . %d/%m/%y . .) (SU) %e %d . (SU) ( tm_mday.) %E : (" ") . (SU) %F %Y-%m-%d ( ISO 8601). (C99) %G ISO 8601 ( ) . 4 ISO ( %V). %Y ISO . (TZ) ( tm_year tm_yday tm_wday.) %g %G (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) . ( %H.) ( tm_hour.) (TZ) %l ( 12 ) ( 1 12) . ( %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.) ( "AM" "PM" nl_langinfo(3) AM_STR PM_STR .) %P %p : "am" "pm" . ( tm_hour.) (GNU) %r a.m. p.m.. (SU) ( nl_langinfo(3) T_FMT_AMPM .) ( POSIX %I:%M:%S %p.) %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 1 4 . %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 . ( nl_langinfo(3) D_FMT %x ERA_D_FMT %Ex.) ( POSIX %m/%d/%y.) %X . ( nl_langinfo(3) T_FMT %X ERA_T_FMT %EX.) ( POSIX %H:%M:%S.) %y ( 00 99). ( %Ey %EC.) ( tm_year) %Y . ( %EY .) ( tm_year) %z +hhmm -hhmm ( UTC). (SU) %Z . %+ date(1). (TZ) ( glibc2.) %% '%' . E O . . (SU) UNIX %Ec %EC %Ex %EX %Ey %EY %Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy O ( ) E . E ERA nl_langinfo(3). ja_JP glibc. strftime_l() strftime() . LC_GLOBAL_LOCALE. max strftime() ( ) s. ( ) max strftime() 0 . 0 . %p . . TZ LC_TIME. attributes(7). +----------------------+------------------------------------+----------------------------------------------------------------------------------------+ | | | | +----------------------+------------------------------------+----------------------------------------------------------------------------------------+ |strftime(), | | (MT-Safe) | |strftime_l() | | | +----------------------+------------------------------------+----------------------------------------------------------------------------------------+ strftime() C11, POSIX.1-2008. strftime_l() POSIX.1-2008. strftime() SVr4 C89. strftime_l() POSIX.1-2008. ANSI C ( ) UNIX ( SU) ( TZ) glibc ( GNU) %+ glibc2. glibc2 . POSIX.1 ANSI C POSIX.2 date(1) strftime() . %F C99 POSIX.1-2001. SUSv2 %S 00 61 ( ). ISO 8601 %G %g %V ISO 8601. 01 52 53 . 1 ( 01 : 4 ). ISO 8601 52 53 . 1 2010 2010. ISO 8601 53 (%V) 2009 (%G) 01 ISO 8601 2010 4 2010. 2011 52 2010. glibc glibc . ( POSIX.1-2001 .) '%' width. ( E O .) : _ ( ) . - () . 0 . ^ . # . ( %Z.) ( ) . ( ) . max errno. . POSIX.1-2001 errno strftime(). gcc(1) %c: : `%c' . %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 #include #include int main(int argc, char *argv[]) { char outstr[200]; time_t t; struct tm *tmp; if (argc != 2) { fprintf(stderr, "Usage: %s: \n", argv[0]); exit(EXIT_FAILURE); } 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), nl_langinfo(3), setlocale(3), sprintf(3), strptime(3) 3 . . : . 6.18 8 2026 strftime(3)