Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Преобразует значение времени и корректирует его для местного часового пояса. Доступны более безопасные версии этих функций; see , , _localtime64_s
_localtime32_s
.localtime_s
Синтаксис
struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );
Параметры
sourceTime
Указатель на сохраненное время.
Возвращаемое значение
Возвращает указатель на результирующую структуру или значение 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
представляет даты до 23:59:59 18 января 2038 года в формате UTC.
localtime
— встроенная функция, которая принимает значение _localtime64
и time_t
эквивалентна __time64_t
. Если необходимо, чтобы компилятор принудительно интерпретировал time_t
как старое 32-разрядное значение time_t
, можно определить _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
причины localtime
вычисления _localtime32
. Мы не рекомендуем _USE_32BIT_TIME_T
использовать приложение, так как приложение может завершиться сбоем после 18 января 2038 г. и не допускается на 64-разрядных платформах.
Поля типа tm
структуры хранят следующие значения:int
Поле | Description |
---|---|
tm_sec |
Секунды после минуты (0 – 59). |
tm_min |
Минуты после часа (0 – 59). |
tm_hour |
Часы с полуночи (0 – 23). |
tm_mday |
День месяца (1 – 31). |
tm_mon |
Месяц (0 – 11; Январь = 0). |
tm_year |
Год (текущий год минус 1900). |
tm_wday |
День недели (0 – 6; Воскресенье = 0). |
tm_yday |
День года (0 – 365; 1 января = 0). |
tm_isdst |
Положительное значение, если летнее время действует; 0, если летнее время не действует; отрицательное значение, если состояние летнего времени неизвестно. |
Если задана переменная среды TZ
, для реализации перехода на летнее время (DST) в библиотеке времени выполнения C принимаются правила, подходящие для США.
Замечания
Функция localtime
преобразует время, хранящееся в качестве time_t
значения, и сохраняет результат в структуре типа tm
. Значение long
типа sourceTime
представляет секунды, прошедшие с полуночи (00:00:00) 1-го января 1970 года в формате UTC. Это значение часто получается из time
функции.
32- и 64-разрядные версии функций gmtime
, mktime
, mkgmtime
и localtime
используют для преобразования единственную для потока структуру tm
. Каждый вызов одной из этих подпрограмм уничтожает результат предыдущего вызова.
Функция localtime
выполняет коррекцию для местного часового пояса, если пользователь сначала задает глобальную переменную среды TZ
. Если переменная TZ
задана, автоматически устанавливаются три других переменных среды (_timezone
, _daylight
и _tzname
). TZ
Если переменная не задана, пытается использовать сведения часового пояса, localtime
указанные в приложении date/Time в панель управления. Если эти сведения не удается получить, PST8PDT, которая обозначает тихоокеанский часовой пояс, используется по умолчанию. См _tzset
. описание этих переменных. TZ
представляет собой расширение Microsoft и не является частью стандарта ANSI для localtime
.
Примечание.
Целевая среда должна попытаться определить, действует ли летнее время.
Эти функции проверяют свои параметры. Если sourceTime
значение равно null или sourceTime
значение отрицательное, эти функции вызывают недопустимый обработчик параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, эти функции возвращают NULL
и устанавливают параметр errno
в значение EINVAL
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок C | Обязательный заголовок C++ |
---|---|---|
localtime , , _localtime32 _localtime64 |
<time.h> |
<ctime> или <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 );
}
Tue Feb 12 10:05:58 AM
См. также
Управление временем
asctime
, _wasctime
ctime
, , _ctime32
_wctime
_ctime64
_wctime32
,_wctime64
_ftime
, , _ftime32
_ftime64
gmtime
, , _gmtime32
_gmtime64
localtime_s
, , _localtime32_s
_localtime64_s
time
, , _time32
_time64
_tzset