CIM_DATETIME

Вы можете получить доступ ко всем датам и времени common Information Model (CIM) в WMI с помощью одного из двух форматов фиксированной длины, относящихся к WMI и CIM. В скриптах используйте объект SWbemDateTime , чтобы преобразовать их в обычные даты и время.

В следующих разделах описывается использование форматов даты и времени WMI.

Формат

В следующей таблице перечислены два формата даты и времени, используемые WMI.

Формат Описание
DATETIME
ггггммддHHMMSS.mmmmmmsUUU
Формат, в котором хранятся значения DATETIME CIM. Этот формат не зависит от языкового стандарта, поэтому можно написать скрипт, который выполняется на любом компьютере. Этот формат необходимо использовать для определения даты и времени в формате управляемого объекта (MOF) или при записи в экземпляр с помощью COM API для WMI или API скриптов для WMI. Дополнительные сведения см. в разделе Изменение свойства экземпляра.
Формат, допустимый только в запросах WMI Query Language (WQL).
гггг-мм-дд ЧЧ:ММ:СС:ммм
Этот формат можно использовать в сценариях, использующих методы SWbemDateTime . Дополнительные сведения см. в разделе Запрос WMI или Запросы с помощью WQL. Этот формат не зависит от языкового стандарта. Порядок года, месяца и дня зависит от региональных и языковых форматов сеанса пользователя. Например, в то время как по умолчанию для США английском языке используется "мм-дд-гггг чч:мм:сс:ммм", форматом для большинства других стран или регионов является "гггг-мм-дд чч:мм:сс:ммм".

В следующей таблице перечислены поля в форматах .

Поле Описание
yyyy Год из четырех цифр (от 0000 до 9999). Реализация может ограничить поддерживаемый диапазон. Например, реализация может поддерживать только годы с 1980 по 2099 год.
мм Месяц из двух цифр (от 01 до 12).
dd Двухзначный день месяца (от 01 до 31). Это значение должно соответствовать месяцу. Например, 31 февраля является недопустимым. Однако реализация не обязательно проверка для допустимых данных.
ЧЧ Двузначный час дня с использованием 24-часовых часов (от 00 до 23).
ММ Двузначная минута в часе (от 00 до 59).
SS Двузначное количество секунд в минуте (от 00 до 59).
mmmmmm Шестизначное число микросекунд во втором (от 000000 до 999999). Реализация не обязательно поддерживает оценку с помощью этого поля. Однако это поле должно присутствовать всегда, чтобы сохранить природу строки фиксированной длины.
mmm Трехзначное число миллисекундах в минуте (от 000 до 999).
s Знак "плюс" (+) или знак "минус" (-) для обозначения положительного или отрицательного смещения от времени в формате UTC.
UUU Смещение из трех цифр, указывающее количество минут, в течение которых исходный часовой пояс отклоняется от utc. Для WMI рекомендуется, но не обязательно, преобразовывать время в GMT (смещение в формате UTC равно нулю).

Необходимо ввести все поля с указанной длиной, используя нули в начале в соответствии с типом. Однако используйте звездочки, чтобы указать неиспользуемые поля или в качестве подстановочного знака. Звездочку (*) можно использовать везде, кроме предложения WHERE запроса. Например, дата и время с неопределенным годом могут наступить в любом году. Если вы хотите оставить поле неопределенным, необходимо заменить все поле звездочками.

В следующих примерах описано допустимое и недопустимое использование звездочек:

  • 19980416*******.000000+*** (юридические)
  • 16.04.1998 *****:*** (нелегальная)
  • 199*0416****.000000+*** (нелегальная)
  • 199*-04-16 *****:*** (незаконно)

Если для представления определенной точки во времени используется дата и время, все его поля должны содержать данные. Если он используется для представления диапазона времени, только поля, необходимые для передачи длительности, должны содержать данные.

В следующем примере описывается "первое апреля": дата относительно некоторого неопределенного года, но по-прежнему определенная точка, если уровень детализации измерения составляет один день.

  • 0401******.000000+***
  • -04-01 ******:*** (незаконно)

Настройка смещения в формате UTC и GMT

В следующих примерах показано, как можно определить время без часового пояса, поместив звездочки в поле UUU после знака "плюс" или "минус".

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:*** (нелегальная)

Приложение интерпретирует незонированную ссылку на дату и время в локальный абстрактный хронометр в выполняемой операционной системе. Например, переносные компьютеры могут иметь внутренние часы, параметры которых могут соответствовать географическому часовой поясу. Вы можете интерпретировать незонированное время, заменив часовой пояс текущего абстрактного источника времени, а не местного часового пояса.

Следует уделить особое внимание значению смещения в формате UTC с датами и временем в запросах. Как правило, сравнение эквивалентности, больше или меньше, чем работает между двумя датами и временем, если даты и время используют одно и то же смещение в формате UTC. При работе с датами и временем, которые происходят с разными смещениями часовых поясов, необходимо сначала преобразовать даты и время в GMT.

Запросы, включающие относительные даты и время со звездочками в одном или нескольких подполях, имеют смысл только для WMI при сравнении на эквивалентность. Кроме того, WMI не позволяет использовать звездочки в качестве подстановочных знаков. Вместо этого WMI сравнивает относительные даты и время на основе символа для символа.

В следующих примерах описываются две даты, которые запрос WMI не считает равными:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Преобразование в формат FILETIME или VT_DATE

Формат CIM DATETIME используется только в WMI. Вы можете выполнить преобразование в формат WMI и формат FILETIME или VT_DATE, вызвав методы объекта скрипта SWbemDateTime . Структура даты и времениFILETIME — это 64-разрядное значение, используемое 32-разрядными операционными системами Windows. VT_DATE формат — это значение datetime варианта автоматизации, используемое в Visual Basic и ActiveX. В следующей таблице перечислены методы преобразования.

Метод Описание
SWbemDateTime.GetFileTime Возвращает значение DATETIME в формате FILETIME .
SWbemDateTime.GetVarDate Возвращает значение DATETIME в VT_DATE формате.
SWbemDateTime.SetFileTime Задает свойство DATETIME , используя в качестве входных данных дату FILETIME .
SWbemDateTime.SetVarDate Задает свойство DATETIME , используя VT_DATE дату в качестве входных данных.

Формат даты и времени

Сведения о WMI

Задачи WMI: даты и время

Формат интервала

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::P ut

IWbemServices::P utClass