CIM_DATETIME

È possibile accedere a tutte le date e le ore di Common Information Model (CIM) in WMI usando uno dei due formati a lunghezza fissa specifici di WMI e CIM. Nello scripting, utilizzare l'oggetto SWbemDateTime per convertirli in date e ore regolari.

Le sezioni seguenti descrivono come usare i formati di data e ora WMI.

Formato

Nella tabella seguente sono elencati i due formati di data e ora usati da WMI.

Formato Descrizione
DATETIME
yymmddHHMMSS.mmmmmmsUUU
Formato in cui vengono archiviati i valori DATETIME CIM. Questo formato è indipendente da impostazioni locali, quindi è possibile scrivere uno script eseguito in qualsiasi computer. È necessario usare questo formato per definire una data e un'ora in Managed Object Format (MOF) o quando si scrive in un'istanza usando l'API COM per WMI o l'API di scripting per WMI. Per altre informazioni, vedere Modifica di una proprietà dell'istanza.
Formato valido solo nelle query WQL (WMI Query Language).
Aaaa-mm-gg HH:MM:SS:mmm
Questo formato può essere usato negli script che usano i metodi SWbemDateTime . Per altre informazioni, vedere Esecuzione di query su WMI o query con WQL. Questo formato non è indipendente da impostazioni locali. L'ordine di anno, mese e giorno dipende dall'impostazione del formato regionale e della lingua della sessione utente. Ad esempio, mentre il valore predefinito per Stati Uniti inglese è "mm-gg-aa hh:mm:ss:mmm", il formato per la maggior parte degli altri paesi o aree geografiche è "a-mm-gg hh:mm:ss:mmm".

Nella tabella seguente sono elencati i campi nei formati.

Campo Descrizione
yyyy Anno a quattro cifre (da 0000 a 9999). L'implementazione può limitare l'intervallo supportato. Ad esempio, un'implementazione può supportare solo gli anni dal 1980 al 2099.
mm Mese a due cifre (da 01 a 12).
dd Giorno a due cifre del mese (da 01 a 31). Questo valore deve essere appropriato per il mese. Ad esempio, il 31 febbraio non è valido. Tuttavia, l'implementazione non deve verificare la presenza di dati validi.
HH Ora a due cifre del giorno usando l'orologio di 24 ore (da 00 a 23).
MM Minuto a due cifre nell'ora (da 00 a 59).
SS Numero a due cifre di secondi nel minuto (da 00 a 59).
mmmmmm Numero di microsecondi a sei cifre nel secondo (da 000000 a 999999). L'implementazione non deve supportare la valutazione usando questo campo. Tuttavia, questo campo deve essere sempre presente per mantenere la natura a lunghezza fissa della stringa.
mmm Numero a tre cifre di millisecondi nel minuto (da 000 a 999).
s Segno più (+) o segno meno (-) per indicare un offset positivo o negativo da Coordinated Universal Times (UTC).
UUU Offset a tre cifre che indica il numero di minuti che il fuso orario di origine devia dall'ora UTC. Per WMI, è consigliabile, ma non obbligatorio, convertire i tempi in GMT (offset UTC pari a zero).

È necessario immettere tutti i campi con la lunghezza indicata, utilizzando zeri iniziali in base al tipo. Tuttavia, usare gli asterischi per indicare i campi inutilizzati o come valore jolly. È possibile usare un asterisco (*) ovunque, ad eccezione della clausola WHERE di una query. Ad esempio, una data e un'ora con un anno non specificato possono verificarsi in qualsiasi anno. Se si desidera lasciare un campo non specificato, è necessario sostituire l'intero campo con asterischi.

Gli esempi seguenti descrivono usi validi e non validi di asterischi:

  • 19980416****.0000000+** (legale)
  • 1998-04-16 ****:*** (illegale)
  • 199*0416****.000000+** (illegale)
  • 199*-04-16 ****:*** (illegale)

Se un valore datetime viene usato per rappresentare un punto specifico nel tempo, tutti i relativi campi devono includere dati. Se viene usato per rappresentare un intervallo di tempo, solo i campi necessari per comunicare la durata devono includere i dati.

L'esempio seguente descrive "April first": una data relativa a un anno non specificato, ma ancora un punto definito se il livello di dettaglio della misurazione è un giorno.

  • 0401******.000000+***
  • -04-01 ****:*** (non valido)

Impostazione dell'offset UTC e gmt

Gli esempi seguenti descrivono come definire un'ora senza fuso orario inserendo asterischi nel campo UUU dopo il segno più o meno:

  • 19980401135809.000000+***
  • 19980401135809.000000-***
  • 1998-04-01 13:58:09:** (illegale)

Un'applicazione interpreta un riferimento di data e ora non a zone a un cronologico locale e astratto all'interno del sistema operativo in esecuzione. Ad esempio, i computer portatili possono avere orologi interni le cui impostazioni possono o meno corrispondere al fuso orario geografico. È possibile interpretare l'ora non a zone sostituendo il fuso orario dell'origine dell'ora astratta corrente anziché il fuso orario locale.

È consigliabile prestare particolare attenzione al significato dell'offset UTC con date e ore nelle query. In generale, l'equivalenza, maggiore o minore di confronti funzionano tra due date e ore se le date e le ore usano lo stesso offset UTC. Quando si gestiscono date e ore che si verificano con offset di fuso orario diversi, è necessario prima convertire le date e le ore in GMT.

Le query che coinvolgono date e ore relative con asterischi in uno o più campi secondari sono significative solo per WMI rispetto all'equivalenza. WMI non consente inoltre l'uso di asterischi come caratteri jolly. WMI confronta invece le date e le ore relative in base a un carattere per carattere.

Gli esempi seguenti descrivono due date che una query WMI non considera uguali:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Conversione in formato FILETIME o VT_DATE

Il formato CIM DATETIME viene usato solo all'interno di WMI. È possibile eseguire la conversione in e dal formato WMI e dal formato FILETIME o VT_DATE chiamando i metodi dell'oggetto scripting SWbemDateTime . Una struttura datetime FILETIME è un valore a 64 bit usato dai sistemi operativi Windows a 32 bit. VT_DATE formato è un valore datetime variante di automazione usato da Visual Basic e ActiveX. Nella tabella seguente sono elencati i metodi di conversione.

Metodo Descrizione
SWbemDateTime.GetFileTime Ottiene un valore DATETIME in formato FILETIME .
SWbemDateTime.GetVarDate Ottiene un valore DATETIME nel formato VT_DATE.
SWbemDateTime.SetFileTime Imposta una proprietà DATETIME usando una data FILETIME come input.
SWbemDateTime.SetVarDate Imposta una proprietà DATETIME usando una data di VT_DATE come input.

Formato data e ora

Informazioni su WMI

Attività WMI: date e orari

Formato intervallo

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::P ut

IWbemServices::P utClass