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


CIM_DATETIME

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

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

Формат

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

Формат Description
DATETIME
yyyymmddHHMMSS.mmmmsUUU
Формат, в котором хранятся значения CIM DATETIME . Этот формат не зависит от языкового стандарта, поэтому можно написать скрипт, который выполняется на любом компьютере. Этот формат необходимо использовать для определения даты и времени в формате MOF или при записи в экземпляр с помощью COM-API для WMI или API скриптов для WMI. Дополнительные сведения см. в разделе "Изменение свойства экземпляра".
Форматируйте допустимые только в запросах WMI Query Language (WQL).
гггг-мм-дд HH:MM:SS:mmm
Этот формат можно использовать в сценариях, использующих методы SWbemDateTime. Дополнительные сведения см. в разделе "Запрос WMI " или "Запросы" с помощью WQL. Этот формат не зависит от языкового стандарта. Порядок года, месяца и дня зависит от региональных и языковых форматов сеанса пользователя. Например, если значение по умолчанию для США английском языке имеет значение mm-dd-y hh:mm:ss:mmm, формат для большинства других стран или регионов — "гггг-мм-дд чч:мм:сс:ммм".

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

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

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

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

  • 19980416******.000000+** (юридический)
  • 1998-04-16 ******:*** (незаконно)
  • 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 формат — это значение даты и времени службы автоматизации, используемое Visual Basic и ActiveX. В следующей таблице перечислены методы преобразования.

Метод Description
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