asctime, _wasctime

Convert a tm time structure to a character string. More secure versions of these functions are available; see asctime_s, _wasctime_s.

Syntax

char *asctime(
   const struct tm *timeptr
);
wchar_t *_wasctime(
   const struct tm *timeptr
);

Parameters

timeptr
Time/date structure.

Return value

asctime returns a pointer to the character string result; _wasctime returns a pointer to the wide-character string result. There's no error return value.

Remarks

More secure versions of these functions are available; see asctime_s, _wasctime_s.

The asctime function converts a time stored as a structure to a character string. The timeptr value is typically obtained from a call to gmtime or localtime, which both return a pointer to a tm structure, defined in TIME.H.

timeptr member Value
tm_hour Hours since midnight (0-23)
tm_isdst Positive if daylight saving time is in effect; 0 if daylight saving time isn't in effect; negative if status of daylight saving time is unknown. The C run-time library assumes the United States' rules for implementing the calculation of Daylight Saving Time (DST).
tm_mday Day of month (1-31)
tm_min Minutes after hour (0-59)
tm_mon Month (0-11; January = 0)
tm_sec Seconds after minute (0-59)
tm_wday Day of week (0-6; Sunday = 0)
tm_yday Day of year (0-365; January 1 = 0)
tm_year Year (current year minus 1900)

For information about configuring the local time, see the time, _ftime, and localtime functions. For information about defining the time zone environment and global variables, see the _tzset function.

The string result produced by asctime contains exactly 26 characters and has the form Wed Jan 2 02:03:55 1980\n\0. A 24-hour clock is used. All fields have a constant width. The newline character and the null character occupy the last two positions of the string. asctime uses a single, statically allocated buffer to hold the return string. Each call to this function destroys the result of the previous call.

_wasctime is a wide-character version of asctime, and otherwise behaves identically to asctime.

These functions validate their parameters. If timeptr is a null pointer, or if it contains out-of-range values, the invalid parameter handler is invoked, as described in Parameter validation. If execution is allowed to continue, the function returns NULL and sets errno to EINVAL.

By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.

Generic-text routine mapping

TCHAR.H routine _UNICODE and _MBCS not defined _MBCS defined _UNICODE defined
_tasctime asctime asctime _wasctime

Requirements

Routine Required header
asctime <time.h>
_wasctime <time.h> or <wchar.h>

Example

This program places the system time in the long integer aclock, translates it into the structure newtime, and then converts it to string form for output using the asctime function.

// crt_asctime.c
// compile with: /W3

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

int main( void )
{
    struct tm   *newTime;
    time_t      szClock;

    // Get time in seconds
    time( &szClock );

    // Convert time to struct tm form
    newTime = localtime( &szClock );

    // Print local time as a string.
    printf_s( "Current date and time: %s", asctime( newTime ) ); // C4996
    // Note: asctime is deprecated; consider using asctime_s instead
}
Current date and time: Sun Feb  3 11:38:58 2002

See also

Time management
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
time, _time32, _time64
_tzset
asctime_s, _wasctime_s