strftime : strftime « time.h « C Tutorial






ItemValue
Header filetime.h
Declarationsize_t strftime(char *str, size_t maxsize, const char *fmt, const struct tm *time);
Functionformat time and date into a string


  1. The strftime() function works a little like sprintf().
  2. The strftime() function returns the number of characters stored in the string pointed to by str or zero if an error occurs.
CommandReplaced By
%aAbbreviated weekday name
%AFull weekday name
%bAbbreviated month name
%BFull month name
%cStandard date and time string
%CLast two digits of year
%dDay of month as a decimal (1-31)
%Dmonth/day/year (added by C99)
%eDay of month as a decimal (1-31) in a two-character field (added by C99)
%Fyear-month-day (added by C99)
%gLast two digits of year using a week-based year (added by C99)
%GThe year using a week-based year (added by C99)
%hAbbreviated month name (added by C99)
%HHour (0-23)
%IHour (1-12)
%jDay of year as a decimal (1-366)
%mMonth as decimal (1-12)
%MMinute as decimal (0-59)
%nA newline (added by C99)
%pLocale's equivalent of AM or PM
%r12-hour time (added by C99)
%Rhh:mm (added by C99)
%SSecond as decimal (0-60)
%tHorizontal tab (added by C99)
%Thh:mm:ss (added by C99)
%uDay of week; Monday is first day of week (0-53) (added by C99)
%UWeek of year, Sunday being first day (0-53)
%VWeek of year using a week-based year (added by C99)
%wWeekday as a decimal (0-6, Sunday being 0)
%WWeek of year, Monday being first day (0-53)
%xStandard date string
%XStandard time string
%yYear in decimal without century (0-99)
%YYear including century as decimal
%zOffset from UTC (added by C99)
%ZTime zone name
%%The percent sign


  1. The E can modify c, C, x, X, y, Y, d, e, and H.
  2. The O can modify I, m, M, S, u, U, V, w, W, and y.

A week-based year is used by the %g, %G, and %V format commands.

With this representation, Monday is the first day of the week, and the first week of a year must include January 4.

#include <time.h>
  #include <stdio.h>

  int main(void)
  {
    struct tm *ptr;
    time_t lt;
    char str[80];

    lt = time(NULL);
    ptr = localtime(&lt);

    strftime(str, 100, "It is now %H %p.", ptr);
    printf(str);

    return 0;
  }
It is now 16 PM.








25.11.strftime
25.11.1.strftime