strftime

Date and Time Functions

Converts time to a string, and writes the string into a memory area.

size_t *strftime( char *string, size_t maxlen, const char *format, const struct tm *timestruct);
stringPointer to an null-terminated area of memory to hold the string data produced by this function.
maxlenMaximum number of characters that string can contain, including the null character '\0' at the end of the string.
formatFormat string indicating the information the function writes into string. Refer to your platform-specific documentation for details.
timestructPointer to a time structure as created by the gmtime or localtime functions. Refer to your platform-specific documentation for details.

Under Linux, strftime is not thread-safe. Use strftime_r, instead. Refer to your platform-specific documentation for details.

Return Values

The number of characters written into string (not including the null '\0' character). If the function fails, the return value is zero, and the contents of string is undefined.

Example

The following example uses localtime to convert the time_t variable, t, to a tm structure, now. It then changes the 24-hour field, tm_hour, to be 12-hour based and prints out the AM/PM time. The example then prints out details of the tm structure using strftime.

    #include <time.h>
    time_t t;
    struct tm * now;
    char tmp[128], ampm[] = "AM";
// Sets variables used by localtime 
    _tzset(); 
    time(&t);
// Convert to time structure and adjust for PM if necessary
    now = (struct tm *)localtime(&t);
    if (now->tm_hour > 12) {
        strcpy (ampm, "PM");
        now->tm_hour -= 12;
     }
// Adjust if midnight hour 
    if (now->tm_hour == 0) 
        now->tm_hour = 12;
    lr_message ("12-hour time: %.8s %s", asctime(now) + 11, ampm);
// Use strftime to build a customized time string 
    strftime (tmp, 128, "Today is %A, day %d of %B in the year %Y.", now);
    lr_message (tmp);
Example: Output:
12-hour time: 03:31:35 PM
Today is Sunday, day 21 of April in the year 2002.