The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group


asctime, asctime_r - convert date and time to a string


#include <time.h>

char *asctime(const struct tm *timeptr);
char *asctime_r(const struct tm *tm, char *buf);


The asctime() function converts the broken-down time in the structure pointed to by timeptr into a string in the form:

Sun Sep 16 01:03:52 1973\n\0

using the equivalent of the following algorithm:

char *asctime(const struct tm *timeptr)
    static char wday_name[7][3] = {
        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
    static char mon_name[12][3] = {
        "Jan", "Feb", "Mar", "Apr", "May", "Jun",
        "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    static char result[26];

    sprintf(result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
        timeptr->tm_mday, timeptr->tm_hour,
        timeptr->tm_min, timeptr->tm_sec,
        1900 + timeptr->tm_year);
    return result;

The tm structure is defined in the <time.h> header.

The asctime(), ctime(), gmtime() and localtime() functions return values in one of two static objects: a broken-down time structure and an array of type char. Execution of any of the functions may overwrite the information returned in either of these objects by any of the other functions.

The asctime() interface need not be reentrant.

The asctime_r() function converts the broken-down time in the structure pointed to by tm into a string that is placed in the user-supplied buffer pointed to by buf (which contains at least 26 bytes) and then returns buf.


Upon successful completion, asctime() returns a pointer to the string.

Upon successful completion, asctime_r() returns a pointer to a character string containing the date and time. This string is pointed to by the argument buf. If the function is unsuccessful, it returns NULL.


No errors are defined.




Values for the broken-down time structure can be obtained by calling gmtime() or localtime(). This interface is included for compatibility with older implementations, and does not support localised date and time formats. Applications should use strftime() to achieve maximum portability.




clock(), ctime(), difftime(), gmtime(), localtime(), mktime(), strftime(), strptime(), time(), utime(), <time.h>.


asctime() derived from Issue 1 of the SVID.

asctime_r() derived from the POSIX Threads Extension (1003.1c-1995).

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]