Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Преобразуют значение времени в строку и настраивают его в соответствии с параметрами локального часового пояса. Доступны более безопасные версии этих функций; seectime_s, _ctime32_s_ctime64_s_wctime_s_wctime32_s_wctime64_s.
Синтаксис
char *ctime( const time_t *sourceTime ); // See note in remarks section about linkage
char *_ctime32( const __time32_t *sourceTime );
char *_ctime64( const __time64_t *sourceTime );
wchar_t *_wctime( const time_t *sourceTime ); // See note in remarks section about linkage
wchar_t *_wctime32( const __time32_t *sourceTime );
wchar_t *_wctime64( const __time64_t *sourceTime );
Параметры
sourceTime
Указатель на время сохранения для преобразования.
Возвращаемое значение
Указатель на результирующую строку символов.
NULL возвращается, когда:
sourceTimeпредставляет дату перед полуночью 1-го января 1970 года, в формате UTC.Вы используете
_ctime32или_wctime32sourceTimeпредставляет дату после 23:59:59 18 января 2038 г. в формате UTC.Вы используете
_ctime64или_wctime64sourceTimeпредставляет дату после 23:59:59, 31 декабря 3000 г. в формате UTC.
ctime — встроенная функция, которая принимает значение _ctime64 и time_t эквивалентна __time64_t. Если необходимо, чтобы компилятор принудительно интерпретировал time_t как старое 32-разрядное значение time_t, можно определить _USE_32BIT_TIME_T. Этот макрос приводит ctime к оценке _ctime32. Мы не рекомендуем использовать его, так как приложение может завершиться сбоем после 18 января 2038 г. и не допускается на 64-разрядных платформах.
Замечания
Функция ctime преобразует значение времени, хранящееся в виде time_t значения, в символьную строку. Значение sourceTime обычно получается из вызова time, которое возвращает количество секунд, истекшее с полуночи (00:00:00), 1 января 1970 года, согласованное универсальное время (UTC). Строка возвращаемого значения содержит ровно 26 символов и имеет следующий вид:
Wed Jan 02 02:03:55 1980\n\0
Время в 24-часовом формате. Все поля имеют постоянную ширину. Символ новой строки ("\n") и нуль-символ ("\0") занимают две последние позиции строки.
Преобразованная символьная строка также настраивается согласно параметрам местного часового пояса. Сведения о настройке локального времени см. в разделе time, _ftimeи localtime функции. Дополнительные сведения об определении среды часового пояса и глобальных переменных см. в _tzset этой функции.
Вызов функции ctime изменяет один статически выделенный буфер, используемый функциями gmtime и localtime. Каждый вызов одной из этих подпрограмм уничтожает результат предыдущего вызова. Функция ctime делит статический буфер с функцией asctime. Таким образом, вызов функции ctime уничтожает результаты любого предыдущего вызова функций asctime, localtime или gmtime.
_wctime и _wctime64 — версии функций ctime и _ctime64 для расширенных символов; возвращают указатель на строку из расширенных символов. В остальном поведение функций _ctime64, _wctime и _wctime64 совпадает с поведением функции ctime.
Эти функции проверяют свои параметры. Если sourceTime имеет значение NULL или sourceTime значение отрицательное, эти функции вызывают обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, эти функции возвращают NULL и устанавливают параметр errno в значение EINVAL.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Замечание
При использовании пакета SDK для Windows версии 10.0.26100.6901 и Visual Studio 2026 или более поздней версии и ctime_wctime больше не static inline (внутренняя компоновка). Вместо этого они inline (внешняя компоновка).
Чтобы вернуться к предыдущему поведению, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 прежде чем включать любые заголовки CRT. По умолчанию параметр _STATIC_INLINE_UCRT_FUNCTIONS имеет значение 0.
Это изменение повышает соответствие UCRT стандарту C++ и улучшает совместимость с модулями C++.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_tctime |
ctime |
ctime |
_wctime |
_tctime32 |
_ctime32 |
_ctime32 |
_wctime32 |
_tctime64 |
_ctime64 |
_ctime64 |
_wctime64 |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
ctime |
<time.h> |
_ctime32 |
<time.h> |
_ctime64 |
<time.h> |
_wctime |
<time.h> или <wchar.h> |
_wctime32 |
<time.h> или <wchar.h> |
_wctime64 |
<time.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_ctime64.c
// compile with: /W3
/* This program gets the current
* time in _time64_t form, then uses ctime to
* display the time in string form.
*/
#include <time.h>
#include <stdio.h>
int main( void )
{
__time64_t ltime;
_time64( <ime );
printf( "The time is %s\n", _ctime64( <ime ) ); // C4996
// Note: _ctime64 is deprecated; consider using _ctime64_s
}
The time is Wed Feb 13 16:04:43 2002
См. также
Управление временем
asctime, _wasctime
ctime_s, , _ctime32_s_ctime64_s_wctime_s_wctime32_s,_wctime64_s
_ftime, , _ftime32_ftime64
gmtime, , _gmtime32_gmtime64
localtime, , _localtime32_localtime64
time, , _time32_time64