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 дату в качестве входных данных. |
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по