localtime, _localtime32, _localtime64

Преобразовать значение времени и подходят для зона локального времени.Более безопасные версии этих функций доступны; см. localtime_s, _localtime32_s, _localtime64_s.

struct tm *localtime(
   const time_t *timer 
);
struct tm *_localtime32(
   const __time32_t *timer
);
struct tm *_localtime64(
   const __time64_t *timer 
);

Параметры

  • timer
    Указатель к хранимому времени.

Возвращаемое значение

Вернитесь к результату структуры или указатель NULL если дата прошла функции выглядит следующим образом:

  • Перед полночью 1-ое января 1970.

  • После 03:14. 07 - 19-ое января 2038, в формате UTC (использование _time32и time32_t).

  • После 23:59. 59 - 31-ое декабря 3000, в формате UTC (использование _time64 и __time64_t).

_localtime64, который использует __time64_t структура позволяет даты, выражаемые вверх до 23:59: 59 - 31-ое декабря 3000, координируемый всемирное время (UTC), в то время как _localtime32 представляет даты до 03:14: 7-ое января 19, 2038 В формате UTC.

localtime встроенная функция, которая принимает значение _localtime64и time_t равно __time64_t.Если необходимо принудительно компилятора интерпретировать time_tнапример, старое пакетом обновления 32 (sp2) time_tможно указать _USE_32BIT_TIME_T.Это вызовет localtime выдавать _localtime32.Это не рекомендуется, поскольку приложение может завершиться ошибкой после 19-ого января 2038 и не разрешено на платформах с пакетом обновления 64 (sp2).

Поля типа структуры тм храните следующих значений, каждое из int.

  • tm_sec
    С помощью секунды после минуты (от 0 до 59).

  • tm_min
    Минуты после часа (от 0 до 59).

  • tm_hour
    Часы после полуночи (от 0 до 23).

  • tm_mday
    День месяца (от 1 до 31).

  • tm_mon
    Месяц (от 0 до 11; январь = 0).

  • tm_year
    Year (текущий год минус 1900).

  • tm_wday
    День недели (от 0 до 6; воскресенье = 0).

  • tm_yday
    День года (от 0 до 365; 1-ое января = 0).

  • tm_isdst
    Положительное значение, если фактически относится к летнему времени; 0, если летнее время не действует. отрицательное значение, если состояние неизвестно летнего времени.Если TZ переменная среды набор, библиотека времени выполнения c использует правила, соответствующие Соединенные персоналом для реализации вычисление летнего времени не).

Заметки

localtime функция преобразует время, хранящихся в виде a time_t значение и сохраняет результат в структуре типа tm.long Значение timer представляет секунды истекл с полуночи (00:00: 00, 1-ое января 1970), время в формате UTC.Это значение обычно извлекаются из time функция.

А 32 - и 64-разрядная версии 64 gmtime" mktime" mkgmtimeи localtime вся использование одного tm структура в поток для преобразования.Каждый вызов к одной из этих подпрограмм уничтожает результат предыдущего вызова.

localtime исправляет для зоны локального времени, если пользователь сначала устанавливается глобальную переменную среды TZ.После TZ набор 3 (других переменных среды_timezone" _daylightи _tzname) будут автоматически.Если TZ переменная не задано, localtime пытается использовать сведения о часовом поясе, определенными в приложении Improvements на Панели управления., Если эти сведения недоступны, то PST8PDT, которое обозначает pacific часовой пояс, используемое по умолчанию.См. _tzset описание этих переменных.TZ расширения Майкрософт и не являются частью определения стандарта ANSI localtime.

ПримечаниеПримечание

Среда должна пытаться определить, является ли целевой летнее время.

Эти функции проверяют их параметры.If timer указатель null или таймера если значение отрицательное, вызывающие эти функции недопустимы обработчик параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то функции возвращают NULL и errno В EINVAL.

Требования

Процедура

Обязательный заголовок

localtime

<time.h>

_localtime32

<time.h>

_localtime64

<time.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

Пример

// crt_localtime.cpp
// compile with: /W3
/* This program uses _time64 to get the current time 
 * and then uses localtime64() to convert this time to a structure 
 * representing the local time. The program converts the result 
 * from a 24-hour clock to a 12-hour clock and determines the 
 * proper extension (AM or PM).
 */

#include <stdio.h>
#include <string.h>
#include <time.h>

int main( void )
{
        struct tm *newtime;
        char am_pm[] = "AM";
        __time64_t long_time;

        _time64( &long_time );           // Get time as 64-bit integer.
                                         // Convert to local time.
        newtime = _localtime64( &long_time ); // C4996
        // Note: _localtime64 deprecated; consider _localetime64_s

        if( newtime->tm_hour > 12 )        // Set up extension.
                strcpy_s( am_pm, sizeof(am_pm), "PM" );
        if( newtime->tm_hour > 12 )        // Convert from 24-hour
                newtime->tm_hour -= 12;    //   to 12-hour clock.
        if( newtime->tm_hour == 0 )        // Set hour to 12 if midnight.
                newtime->tm_hour = 12;

        char buff[30];
        asctime_s( buff, sizeof(buff), newtime );
        printf( "%.19s %s\n", buff, am_pm );
}
  

Эквивалент в .NET Framework

System:: дата и время:: ToLocalTime

См. также

Ссылки

Управление временем

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset