asctime, _wasctime
Преобразуют структуру времени tm в символьную строку. Существуют более безопасные версии этих функций; см. раздел asctime_s, _wasctime_s.
char *asctime(
const struct tm *timeptr
);
wchar_t *_wasctime(
const struct tm *timeptr
);
Параметры
- timeptr
Структура времени/даты.
Возвращаемое значение
asctime возвращает указатель на результирующую символьную строку; _wasctime возвращает указатель на результирующую строку расширенных символов. Нет какого-либо возвращаемого значения ошибки.
Заметки
Существуют более безопасные версии этих функций; см. раздел asctime_s, _wasctime_s.
Функция asctime преобразует время, хранящееся в виде структуры, в символьную строку. Значение timeptr обычно получается из вызова gmtime или localtime, обе из которых возвращают указатель на структуру tm, определенную в TIME.H.
Член timeptr |
Значение |
---|---|
tm_hour |
Часы после полуночи (0–23) |
tm_isdst |
Положительно, если действует летнее время; 0 если летнее время не действует; отрицательно, если состояние летнего времени неизвестно. Библиотека времени выполнения C принимает правила Соединенных Штатов для реализации проверки на летнее время (DST). |
tm_mday |
День месяца (1–31) |
tm_min |
Минуты после часа (0–59) |
tm_mon |
Месяц (0–11; Январь = 0) |
tm_sec |
Секунды после минуты (0–59) |
tm_wday |
День недели (0–6; 0 = воскресенье) |
tm_yday |
День года (0–365; 1-е января = 0) |
tm_year |
Год (текущий год минус 1900) |
Преобразованная символьная строка также настраивается согласно параметрам зоны локального времени. Сведения о настройке местного времени см. в разделах о функциях time, _ftime и localtime, сведения об определении среды временной зоны и глобальных переменных см. функцию _tzset.
Итоговая строка, полученная с помощью asctime, содержит ровно 26 символов и имеет вид Wed Jan 02 02:03:55 1980\n\0. Время в 24-часовом формате. Все поля имеют постоянную ширину. Символ новой строки и нуль-символ занимают две последние позиции строки. asctime использует один статически выделенный буфер для хранения возвращаемой строки. Каждый вызов этой функции уничтожает результат предыдущего вызова.
_wasctime — это версия asctime для расширенных символов. В остальных случаях поведение _wasctime и asctime идентично.
Эти функции проверяют свои параметры. Если timeptr указатель на null, или если он содержит значение вне допустимого диапазона, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение разрешено для продолжить, функция возвращает NULL и задает errno в EINVAL.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tasctime |
asctime |
asctime |
_wasctime |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
asctime |
<time.h> |
_wasctime |
<time.h> или <wchar.h> |
Пример
Программа помещает системное время в целочисленную переменную aclock, преобразует его в структуру newtime и затем преобразует его в строку для вывода с помощью функции asctime.
// 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
}
Эквивалент в .NET Framework
См. также
Ссылки
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64