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


Структура SYSTEMTIME (minwinbase.h)

Указывает дату и время, используя отдельные элементы для месяца, дня, года, дня недели, часа, минуты, секунды и миллисекунд. Время определяется в формате UTC или местном времени в зависимости от вызываемой функции.

Синтаксис

typedef struct _SYSTEMTIME {
  WORD wYear;
  WORD wMonth;
  WORD wDayOfWeek;
  WORD wDay;
  WORD wHour;
  WORD wMinute;
  WORD wSecond;
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

Члены

wYear

Год. Допустимые значения для этого элемента — от 1601 до 30827.

wMonth

Месяц. Этот элемент может иметь одно из следующих значений.

Значение Значение
1
Январь
2
Февраль
3
Март
4
Апрель
5
Май
6
Июнь
7
Июль
8
Август
9
Сентябрь
10
Октябрь
11
Ноябрь
12
Декабрь

wDayOfWeek

День недели. Этот элемент может иметь одно из следующих значений.

Значение Значение
0
Воскресенье
1
Понедельник
2
Вторник
3
Среда
4
Четверг
5
Пятница
6
Суббота

wDay

День месяца. Допустимые значения для этого элемента: от 1 до 31.

wHour

Час. Допустимые значения для этого элемента — от 0 до 23.

wMinute

Минута. Допустимые значения для этого элемента — от 0 до 59.

wSecond

Секунда. Допустимые значения для этого элемента — от 0 до 59.

wMilliseconds

Миллисекунда. Допустимые значения для этого элемента : от 0 до 999.

Комментарии

Примечание

SystemTIME не проверка, чтобы узнать, является ли представленная дата реальной и допустимой датой. При работе с этим API следует обеспечить его допустимость, особенно в високосных сценариях. Дополнительные сведения см. в разделе Готовность к високосным дням .

Не рекомендуется добавлять и вычитать значения из структуры SYSTEMTIME , чтобы получить относительное время. Поэтому необходимо

  • Преобразуйте структуру SYSTEMTIME в структуру FILETIME .
  • Скопируйте полученную структуру FILETIME в ULARGE_INTEGER структуру.
  • Используйте обычную 64-разрядную арифметическую для ULARGE_INTEGER значения.
Система может периодически обновлять время путем синхронизации с источником времени. Так как системное время можно настроить как вперед, так и назад, не сравнивайте показания системного времени, чтобы определить затраченное время. Вместо этого используйте один из методов, описанных в разделе Время Windows.

Примеры

В следующем примере показана разница между значениями времени, получаемыми функциями GetSystemTime и GetLocalTime .

#include <windows.h>
#include <stdio.h>

void main()
{
    SYSTEMTIME st, lt;
    
    GetSystemTime(&st);
    GetLocalTime(&lt);
    
    printf("The system time is: %02d:%02d\n", st.wHour, st.wMinute);
    printf(" The local time is: %02d:%02d\n", lt.wHour, lt.wMinute);
}


// Sample output

The system time is: 19:34
 The local time is: 12:34

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Верхняя часть minwinbase.h (включая Windows.h)

См. также раздел

FILETIME

FileTimeToSystemTime

GetLocalTime

GetSystemTime

SetLocalTime

SetSystemTime

SystemTimeToFileTime

ULARGE_INTEGER