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
См. также
Ссылки
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64