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. |