asctime, asctime_r - convert date and time to a string
#include <time.h>
char *asctime(const struct tm *timeptr);
[TSF] char *asctime_r(const struct tm *restrict tm, char *restrict buf);
For asctime(): [CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard.
The asctime() function shall convert 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\0using 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", wday_name[timeptr->tm_wday], mon_name[timeptr->tm_mon], 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.
[CX] The asctime(), ctime(), gmtime(), and localtime() functions shall 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() function need not be reentrant. A function that is not required to be reentrant is not required to be thread-safe.
[TSF] The asctime_r() function shall convert the broken-down time in the structure pointed to by tm into a string (of the same form as that returned by asctime()) that is placed in the user-supplied buffer pointed to by buf (which shall contain at least 26 bytes) and then return buf.
Upon successful completion, asctime() shall return a pointer to the string. [CX] If the function is unsuccessful, it shall return NULL.
[TSF] Upon successful completion, asctime_r() shall return 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 shall return NULL.
No errors are defined.
None.
Values for the broken-down time structure can be obtained by calling gmtime() or localtime(). This function is included for compatibility with older implementations, and does not support localized date and time formats. Applications should use strftime() to achieve maximum portability.
The asctime_r() function is thread-safe and shall return values in a user-supplied buffer instead of possibly using a static data area that may be overwritten by each call.
None.
None.
clock(), ctime(), difftime(), gmtime(), localtime() , mktime(), strftime(), strptime(), time(), utime(), the Base Definitions volume of IEEE Std 1003.1-2001, <time.h>
First released in Issue 1. Derived from Issue 1 of the SVID.
Normative text previously in the APPLICATION USAGE section is moved to the DESCRIPTION.
The asctime_r() function is included for alignment with the POSIX Threads Extension.
A note indicating that the asctime() function need not be reentrant is added to the DESCRIPTION.
The asctime_r() function is marked as part of the Thread-Safe Functions option.
Extensions beyond the ISO C standard are marked.
The APPLICATION USAGE section is updated to include a note on the thread-safe function and its avoidance of possibly using a static data area.
The DESCRIPTION of asctime_r() is updated to describe the format of the string returned.
The restrict keyword is added to the asctime_r() prototype for alignment with the ISO/IEC 9899:1999 standard.
IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/17 is applied, adding the CX extension in the RETURN VALUE section requiring that if the asctime() function is unsuccessful it returns NULL.