Sdílet prostřednictvím


CIM_DATETIME

Ke všem modelu CIM (Common Information Model) můžete přistupovat kalendářní data a časy ve službě WMI pomocí jednoho ze dvou formátů s pevnou délkou specifickou pro rozhraní WMI a CIM. Při skriptování použijte objekt SWbemDateTime k převodu na běžná data a časy.

Následující části popisují použití formátů data a času rozhraní WMI.

Formát

Následující tabulka uvádí dva formáty data a času používané rozhraním WMI.

Formát Popis
DATETIME
yyyymmddHHMMSS.mmmmmmsUUUU
Formát, ve kterém jsou uloženy hodnoty CIM DATETIME. Tento formát je nezávislý na národním prostředí, takže můžete napsat skript, který běží na libovolném počítači. Tento formát musíte použít k definování data a času vManaged Object Format (MOF) nebo při zápisu do instance pomocí rozhraní API COM pro rozhraní WMI nebo Skriptovací rozhraní API pro rozhraní WMI. Další informace naleznete v tématu Úprava vlastnosti instance.
Formát je platný pouze v dotazech jazyka WQL (WQL).
yyyy-mm-dd HH:MM:SS:mmm
Tento formát lze použít ve skriptech, které používají metody SWbemDateTime. Další informace najdete v tématu dotazování rozhraní WMI nebo dotazování pomocíjazyka WQL . Tento formát není nezávislý na národním prostředí. Pořadí roku, měsíce a dne závisí na nastavení místního a jazykového formátu relace uživatele. Když je například výchozí pro Usa angličtina "mm-dd-yyyy hh:mm:ss:mmm", formát pro většinu ostatních zemí nebo oblastí je "rrrr-mm-dd hh:mm:ss:mmm".

Následující tabulka uvádí pole ve formátech.

Pole Popis
yyyy Čtyřmístný rok (0000 až 9999). Vaše implementace může omezit podporovaný rozsah. Implementace může například podporovat pouze roky 1980 až 2099.
mm Dvouciferný měsíc (01 až 12).
Dvouciferný den v měsíci (01 až 31) Tato hodnota musí být vhodná pro měsíc. Například 31. února není platná. Vaše implementace ale nemusí kontrolovat platná data.
HH Dvouciferná hodina dne pomocí 24hodinového formátu (00 až 23).
MM Dvouciferná minuta v hodině (00 až 59)
SS Dvouciferný počet sekund v minutě (00 až 59)
mm Šestimístný počet mikrosekund v sekundě (000000 až 999999). Vaše implementace nemusí podporovat vyhodnocení pomocí tohoto pole. Toto pole však musí být vždy přítomno, aby se zachovala povaha řetězce s pevnou délkou.
mmm Třímístný počet milisekund v minutě (000 až 999).
s Znaménko plus (+) nebo znaménko minus (-) označující kladný nebo záporný posun od koordinovaného univerzálního času (UTC).
UUU Třímístný posun označující počet minut, které původní časové pásmo odchyluje od času UTC. Pro rozhraní WMI se doporučuje, ale nevyžaduje se převod časů na GMT (posun UTC od nuly).

Je nutné zadat všechna pole s uvedenou délkou, a to pomocí počátečních nul podle potřeby pro typ. Hvězdičky však použijte k označení nepoužívaných polí nebo jako hodnotu se zástupnými znaménami. Hvězdičku (*) můžete použít všude kromě klauzule WHERE dotazu. Například datum a čas s nespecifikovaným rokem může nastat v libovolném roce. Pokud chcete ponechat nezadané pole, musíte celé pole nahradit hvězdičkami.

Následující příklady popisují platné a neplatné použití hvězdičky:

  • 19980416******.000000+*** (právní)
  • 1998-04-16 ******:*** (nelegální)
  • 199*0416******.000000+*** (Nelegální)
  • 199*-04-16 ******:*** (nelegální)

Pokud se k reprezentaci konkrétního bodu v čase používá datum a čas, měly by všechna jeho pole obsahovat data. Pokud se používá k vyjádření časového rozsahu, měla by obsahovat data pouze pole potřebná k vyjádření doby trvání.

Následující příklad popisuje "Duben první": datum relativní k určitému nespecifikovanému roku, ale stále definovaný bod, pokud je úroveň podrobností měření jeden den.

  • ****0401******.000000+***
  • -04-01 ******:*** (nelegální)

Nastavení posunu UTC a GMT

Následující příklady popisují, jak můžete definovat čas bez časového pásma umístěním hvězdičky do pole UUU za znaménko plus nebo minus:

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:*** (Nelegální)

Aplikace interpretuje nezonovaný odkaz na datum a čas na místní abstraktní chronometr v rámci spuštěného operačního systému. Přenosné počítače můžou mít například interní hodiny, jejichž nastavení může nebo nemusí odpovídat zeměpisnému časovému pásmu. Nezonovaný čas můžete interpretovat tak, že místo místního časového pásma nahraďte časové pásmo aktuálního abstraktního časového zdroje.

Měli byste věnovat zvláštní pozornost významu posunu UTC s daty a časy v dotazech. Obecně platí, že ekvivalence, větší než nebo menší než porovnání fungují mezi dvěma daty a časy, pokud data a časy používají stejný posun UTC. Při práci s daty a časy, ke kterým dochází s různými posuny časových pásem, byste nejprve měli data a časy převést na GMT.

Dotazy, které zahrnují relativní data a časy s hvězdičkami v jednom nebo několika dílčích polích, jsou pro rozhraní WMI smysluplné pouze v porovnání s ekvivalencemi. Kromě toho rozhraní WMI nepovoluje použití hvězdičky jako zástupných znaků. Místo toho rozhraní WMI porovnává relativní data a časy na znakové znaky.

Následující příklady popisují dvě kalendářní data, která dotaz WMI nepovažuje za rovnou:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Převod do formátu FILETIME nebo VT_DATE

Formát CIM DATETIME se používá pouze v rámci rozhraní WMI. Můžete převést na formát WMI a buď FILETIME nebo VT_DATE formát voláním metod SWbemDateTime skriptovací objekt. Struktura FILETIMEdatetime je 64bitová hodnota, kterou používají 32bitové operační systémy Windows. formát VT_DATE je hodnota data a času automatizace používaná jazykem Visual Basic a ActiveX. Následující tabulka uvádí metody převodu.

Metoda Popis
SWbemDateTime.GetFileTime Získá hodnotu DATETIME ve formátu FILETIME.
SWbemDateTime.GetVarDate Získá hodnotu DATETIME ve formátu VT_DATE.
SWbemDateTime.SetFileTime Nastaví vlastnost DATETIME pomocí FILETIME data jako vstupu.
SWbemDateTime.SetVarDate Nastaví vlastnost DATETIME pomocí VT_DATE data jako vstupu.

formátu data a času

o službě WMI

úkoly rozhraní WMI: Data a časy

formátu intervalu

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::P ut

IWbemServices::P utClass