asctime, asctime_s
|
Определено в заголовке
<time.h>
|
||
| (1) | ||
|
char
*
asctime
(
const
struct
tm
*
time_ptr
)
;
|
(до C23) | |
|
[
[
deprecated
]
]
char
*
asctime
(
const
struct
tm
*
time_ptr
)
;
|
(начиная с C23) | |
|
errno_t asctime_s
(
char
*
buf, rsize_t bufsz,
const
struct
tm
*
time_ptr
)
;
|
(2) | (начиная с C11) |
-
Www- трёхбуквенное английское сокращение дня недели из time_ptr - > tm_wday , одно из:Mon,Tue,Wed,Thu,Fri,Sat,Sun. -
Mmm- трёхбуквенное английское сокращение названия месяца из time_ptr - > tm_mon , одно из:Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec. -
dd- двузначный день месяца из timeptr - > tm_mday , как если бы выведено с помощью sprintf с использованием % 2d . -
hh- двузначный час из timeptr - > tm_hour , как если бы выведено с помощью sprintf с использованием % .2d . -
mm- двузначная минута из timeptr - > tm_min , как если бы выведено с помощью sprintf с использованием % .2d . -
ss- двузначная секунда из timeptr - > tm_sec , как если бы выведено с помощью sprintf с использованием % .2d . -
yyyy- четырёхзначный год из timeptr - > tm_year + 1900 , как если бы выведено с помощью sprintf с использованием % 4d .
|
Эта функция устарела и не должна использоваться в новом коде.
|
(since C23) |
-
- buf или time_ptr является нулевым указателем
- bufsz меньше 26 или больше RSIZE_MAX
- не все члены * time_ptr находятся в своих нормальных диапазонах
- год, указанный time_ptr - > tm_year , меньше 0 или больше 9999.
-
Как и для всех функций с проверкой границ,
asctime_sгарантированно доступна только если реализация определяет __STDC_LIB_EXT1__ и если пользователь определяет __STDC_WANT_LIB_EXT1__ как целочисленную константу 1 перед включением <time.h> .
Содержание |
Параметры
| time_ptr | - | указатель на объект tm , определяющий время для вывода |
| buf | - | указатель на предоставленный пользователем буфер длиной не менее 26 байт |
| bufsz | - | размер предоставленного пользователем буфера |
Возвращаемое значение
asctime
и
ctime
и может перезаписываться при каждом вызове любой из этих функций.
Примечания
asctime
возвращает указатель на статические данные и не является потокобезопасной. POSIX помечает эту функцию устаревшей и рекомендует использовать
strftime
вместо неё. Стандарт C также рекомендует
strftime
вместо
asctime
и
asctime_s
, поскольку
strftime
является более гибкой и учитывает локаль.
POSIX ограничивает неопределённое поведение только случаями, когда выходная строка превышает 25 символов, когда timeptr - > tm_wday или timeptr - > tm_mon находятся вне ожидаемых диапазонов, или когда timeptr - > tm_year превышает INT_MAX - 1990 .
Некоторые реализации обрабатывают timeptr - > tm_mday == 0 как обозначение последнего дня предыдущего месяца.
Пример
Возможный вывод:
Tue May 26 21:51:50 2015 Tue May 26 21:51:50 2015
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.27.2.1 Функция asctime (стр: 287)
-
- K.3.8.2.1 Функция asctime_s (стр: 453-454)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.27.2.1 Функция asctime (стр: 392-393)
-
- K.3.8.2.1 Функция asctime_s (стр: 624-625)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.23.3.1 Функция asctime (стр: 341-342)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.12.3.1 Функция asctime
Смотрите также
|
(устарело в C23)
(C11)
|
преобразует объект
time_t
в текстовое представление
(функция) |
|
преобразует объект
tm
в пользовательское текстовое представление
(функция) |
|
|
Документация C++
для
asctime
|
|