Megosztás a következőn keresztül:


CIM_DATETIME

A WMI-ben az összes Common Information Model (CIM) dátumokat és időpontokat a WMI-hez és a CIM-hez tartozó két rögzített hosszúságú formátum egyikével érheti el. A szkriptelés során használja az SWbemDateTime objektumot, hogy ezeket normál dátumokra és időpontokra konvertálja.

A következő szakaszok a WMI dátum- és időformátumainak használatát ismertetik.

Formátum

Az alábbi táblázat a WMI által használt két dátum- és időformátumot sorolja fel.

Formátum Leírás
DATETIME
yymmddHHMMSS.mmmmsUUU
A CIM DATETIME értékek tárolásának formátuma. Ez a formátum területi beállításfüggetlen, így bármilyen gépen futó szkriptet írhat. Ezt a formátumot kell használnia felügyelt objektumformátum (MOF), illetve a WMI COM API-jának vagy a WMI Scripting API-jának használatával történő íráshoz. További információ: Példánytulajdonság módosítása.
Csak WMI-lekérdezési nyelv (WQL) lekérdezésekben érvényes formátum.
éééé-mm-dd HH:MM:SS:mmm
Ez a formátum az SWbemDateTime metódusokat használó szkriptekben használható. További információ: WMI- lekérdezése vagy Lekérdezés WQL-. Ez a formátum nem független a területi beállításoktól. Az év, hónap és nap sorrendje a felhasználói munkamenet területi és nyelvi formátumbeállításától függ. Míg például az egyesült államokbeli angol nyelv alapértelmezett értéke "mm-dd-yyyyy hh:mm:ss:mmm", a legtöbb más ország vagy régió formátuma "yyyy-mm-dd hh:mm:ss:mmm".

Az alábbi táblázat a formátumokban szereplő mezőket sorolja fel.

Mező Leírás
yyyyy Négyjegyű év (0000–9999). A megvalósítás korlátozhatja a támogatott tartományt. Egy implementáció például csak az 1980–2099-et támogatja.
mm Kétjegyű hónap (01–12).
dd A hónap kétjegyű napja (01–31). Ennek az értéknek a hónapnak megfelelőnek kell lennie. Például a február 31-i szám érvénytelen. Az implementációnak azonban nem kell érvényes adatokat ellenőriznie.
HH A nap kétjegyű órája a 24 órás (00–23) óra használatával.
MM Kétjegyű perc az órában (00–59).
SS- Másodpercek kétjegyű száma (00–59).
mmmmmm A mikroszekundumok hatjegyű száma a másodikban (000 000 000– 999999). Az implementációnak nem kell támogatnia az ezen a területen végzett kiértékeléseket. Ennek a mezőnek azonban mindig jelen kell lennie a sztring rögzített hosszúságú jellegének megőrzéséhez.
mmm Háromjegyű szám ezredmásodpercben (000–999).
s Pluszjel (+) vagy mínuszjel (-) az egyezményes világidők (UTC) pozitív vagy negatív eltolásának jelzésére.
UUU- Háromjegyű eltolás, amely azt jelzi, hogy a kiindulási időzóna hány percet tér el az UTC-től. A WMI esetében javasoljuk, de nem kötelező az időpontok GMT-vé alakítása (a nulla UTC-eltolás).

A megadott hosszúságú mezőket a típusnak megfelelő kezdő nullákkal kell megadnia. Használjon azonban csillagokat a nem használt mezők vagy helyettesítő karakterek jelzésére. A lekérdezések WHERE záradék kivételével mindenhol használhat csillagot (*). Egy meghatározatlan évet tartalmazó dátum és idő például bármely évben előfordulhat. Ha meghatározatlanként szeretne hagyni egy mezőt, a teljes mezőt csillaggal kell lecserélnie.

Az alábbi példák a csillagok érvényes és érvénytelen használatát írják le:

  • 19980416******.0000000+*** (Jogi)
  • 1998-04-16 ******:*** (Illegális)
  • 199*0416******.000000+*** (Illegális)
  • 199*-04-16 ******:*** (Illegális)

Ha egy dátum/idő egy adott időpontot jelöl, az összes mezőnek tartalmaznia kell az adatokat. Ha egy időtartományt jelöl, csak az időtartam továbbításához szükséges mezők tartalmazhatnak adatokat.

Az alábbi példa az "első áprilist" írja le: egy dátum egy meghatározatlan évhez képest, de még mindig egy meghatározott pont, ha a mérési adatok szintje egy nap.

  • ****0401******.000000+***
  • -04-01 ******:*** (illegális)

UTC-eltolás és GMT beállítása

Az alábbi példák azt mutatják be, hogyan határozható meg időzóna nélküli idő, ha csillagokat helyez el a UUU mezőben a plusz vagy mínuszjel után:

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:*** (illegális)

Az alkalmazás egy nem zónaalapú dátum- és időhivatkozást értelmez egy helyi, absztrakt kronométerre a végrehajtó operációs rendszeren belül. A hordozható számítógépek például olyan belső órákat is tartalmazhatnak, amelyek beállításai nem feltétlenül felelnek meg a földrajzi időzónának. Az övezet nélküli időt úgy értelmezheti, hogy az aktuális absztrakt időzóna időzónáját helyettesíti a helyi időzóna helyett.

Különös figyelmet kell fordítania az UTC-eltolás jelentésére dátumokkal és időpontokkal a lekérdezésekben. Általánosságban elmondható, hogy az egyenértékűség, a nagyobb vagy kisebb, mint az összehasonlítás két dátum és időpont között működik, ha a dátumok és időpontok ugyanazt az UTC-eltolást használják. Amikor különböző időzóna-eltolásokkal rendelkező dátumokkal és időpontokkal foglalkozik, először konvertálja a dátumokat és időpontokat GMT-vé.

Az egy vagy több almezőben lévő csillaggal rendelkező relatív dátumokat és időpontokat tartalmazó lekérdezések csak akkor értelmezhetők a WMI számára, ha összehasonlítják az egyenértékűséget. Ezenkívül a WMI nem engedélyezi a csillag helyettesítő karakterként való használatát. Ehelyett a WMI karakteres alapon hasonlítja össze a relatív dátumokat és időpontokat.

Az alábbi példák két dátumot írnak le, amelyeket a WMI-lekérdezések nem tekintenek egyenlőnek:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Konvertálás FILETIME vagy VT_DATE formátumra

A CIM DATETIME formátum csak a WMI-ben használható. Az SWbemDateTimeszkriptelési objektum metódusainak meghívásával a WMI formátumba és a FILETIME vagy VT_DATE formátumba is konvertálhat. A FILETIMEdatetime struktúra a 32 bites Windows operációs rendszerek által használt 64 bites érték. VT_DATE formátum egy automation variant datetime érték, amelyet a Visual Basic és az ActiveX használ. Az alábbi táblázat a konvertálási módszereket sorolja fel.

Módszer Leírás
SWbemDateTime.GetFileTime DATETIME értéket kap FILETIME formátumban.
SWbemDateTime.GetVarDate DATETIME értéket kap VT_DATE formátumban.
SWbemDateTime.SetFileTime Beállít egy DATETIME tulajdonságot egy FILETIME dátum bemenetként való használatával.
SWbemDateTime.SetVarDate Beállít egy DATETIME tulajdonságot egy VT_DATE dátum bemeneteként.

Dátum- és időformátum

A WMI-

WMI-feladatok: Dátumok és időpontok

intervallumformátum

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::P ut

IWbemServices::P utClass