Поделиться через


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

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime, _localtime32, _localtime64

time, _time32, _time64

_tzset

asctime_s, _wasctime_s