asctime, asctime_s
|
Defined in header
<time.h>
|
||
| (1) | ||
|
char
*
asctime
(
const
struct
tm
*
time_ptr
)
;
|
(until C23) | |
|
[
[
deprecated
]
]
char
*
asctime
(
const
struct
tm
*
time_ptr
)
;
|
(since C23) | |
|
errno_t asctime_s
(
char
*
buf, rsize_t bufsz,
const
struct
tm
*
time_ptr
)
;
|
(2) | (since C11) |
-
Www- three-letter English abbreviated day of the week from time_ptr - > tm_wday , one ofMon,Tue,Wed,Thu,Fri,Sat,Sun. -
Mmm- three-letter English abbreviated month name from time_ptr - > tm_mon , one ofJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec. -
dd- 2-digit day of the month from timeptr - > tm_mday as if printed by sprintf using % 2d . -
hh- 2-digit hour from timeptr - > tm_hour as if printed by sprintf using % .2d . -
mm- 2-digit minute from timeptr - > tm_min as if printed by sprintf using % .2d . -
ss- 2-digit second from timeptr - > tm_sec as if printed by sprintf using % .2d . -
yyyy- 4-digit year from timeptr - > tm_year + 1900 as if printed by sprintf using % 4d .
|
This function is deprecated and should not be used in new code.
|
(since C23) |
-
- buf or time_ptr is a null pointer
- bufsz is less than 26 or greater than RSIZE_MAX
- not all members of * time_ptr are within their normal ranges
- the year indicated by time_ptr - > tm_year is less than 0 or greater than 9999.
-
As with all bounds-checked functions,
asctime_sis only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including <time.h> .
Contents |
Parameters
| time_ptr | - | pointer to a tm object specifying the time to print |
| buf | - | pointer to a user-supplied buffer at least 26 bytes in length |
| bufsz | - | size of the user-supplied buffer |
Return value
asctime
and
ctime
, and may be overwritten on each invocation of any of those functions.
Notes
asctime
returns a pointer to static data and is not thread-safe. POSIX marks this function obsolete and recommends
strftime
instead. The C standard also recommends
strftime
instead of
asctime
and
asctime_s
because
strftime
is more flexible and locale-sensitive.
POSIX limits undefined behaviors only to when the output string would be longer than 25 characters, when timeptr - > tm_wday or timeptr - > tm_mon are not within the expected ranges, or when timeptr - > tm_year exceeds INT_MAX - 1990 .
Some implementations handle timeptr - > tm_mday == 0 as meaning the last day of the preceding month.
Example
Possible output:
Tue May 26 21:51:50 2015 Tue May 26 21:51:50 2015
References
- C17 standard (ISO/IEC 9899:2018):
-
- 7.27.2.1 The asctime function (p: 287)
-
- K.3.8.2.1 The asctime_s function (p: 453-454)
- C11 standard (ISO/IEC 9899:2011):
-
- 7.27.2.1 The asctime function (p: 392-393)
-
- K.3.8.2.1 The asctime_s function (p: 624-625)
- C99 standard (ISO/IEC 9899:1999):
-
- 7.23.3.1 The asctime function (p: 341-342)
- C89/C90 standard (ISO/IEC 9899:1990):
-
- 4.12.3.1 The asctime function
See also
|
(deprecated in C23)
(C11)
|
converts a
time_t
object to a textual representation
(function) |
|
converts a
tm
object to custom textual representation
(function) |
|
|
C++ documentation
for
asctime
|
|