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 даты в качестве входных данных. |