CIM_DATETIME

Anda dapat mengakses semua tanggal dan waktu Common Information Model (CIM) di WMI dengan menggunakan salah satu dari dua format panjang tetap khusus untuk WMI dan CIM. Dalam pembuatan skrip, gunakan objek SWbemDateTime untuk mengonversinya menjadi tanggal dan waktu reguler.

Bagian berikut ini menjelaskan cara menggunakan format tanggal dan waktu WMI.

Format

Tabel berikut mencantumkan dua format tanggal dan waktu yang digunakan oleh WMI.

Format Deskripsi
DATETIME
yyyymmddHHMMSS.mmmmmmsUUU
Format tempat nilai DATETIME CIM disimpan. Format ini bersifat lokal-independen sehingga Anda dapat menulis skrip yang berjalan pada komputer apa pun. Anda harus menggunakan format ini untuk menentukan tanggal dan waktu dalam Managed Object Format (MOF), atau saat menulis ke instans menggunakan COM API untuk WMI atau Scripting API untuk WMI. Untuk informasi selengkapnya, lihat Memodifikasi Properti Instans.
Format hanya valid dalam kueri WMI Query Language (WQL).
yyyy-mm-dd HH:MM:SS:mmm
Format ini dapat digunakan dalam skrip yang menggunakan metode SWbemDateTime . Untuk informasi selengkapnya, lihat Mengkueri WMI atau Mengkueri dengan WQL. Format ini tidak independen dari lokal. Urutan tahun, bulan, dan hari tergantung pada pengaturan format regional dan bahasa sesi pengguna. Misalnya, sementara default untuk bahasa Inggris Amerika Serikat adalah "mm-dd-yyyy hh:mm:ss:mmm", format untuk sebagian besar negara atau wilayah lain adalah "yyyy-mm-dd hh:mm:ss:mmm".

Tabel berikut ini mencantumkan bidang dalam format.

Bidang Deskripsi
yyyy Tahun empat digit (0000 hingga 9999). Implementasi Anda dapat membatasi rentang yang didukung. Misalnya, implementasi hanya dapat mendukung tahun 1980 hingga 2099.
mm Bulan dua digit (01 hingga 12).
dd Hari dua digit dalam sebulan (01 hingga 31). Nilai ini harus sesuai untuk bulan tersebut. Misalnya, 31 Februari tidak valid. Namun, implementasi Anda tidak perlu memeriksa data yang valid.
HH Dua digit jam dalam sehari menggunakan jam 24 jam (00 hingga 23).
MM Dua digit menit dalam satu jam (00 hingga 59).
SS Jumlah dua digit detik dalam menit (00 hingga 59).
mmmmmm Enam digit jumlah mikrodetik dalam detik (000000 hingga 999999). Implementasi Anda tidak harus mendukung evaluasi menggunakan bidang ini. Namun, bidang ini harus selalu ada untuk mempertahankan sifat string dengan panjang tetap.
mmm Jumlah tiga digit milidetik dalam menit (000 hingga 999).
s Tanda plus (+) atau tanda minus (-) untuk menunjukkan offset positif atau negatif dari Coordinated Universal Times (UTC).
UUU Offset tiga digit menunjukkan jumlah menit bahwa zona waktu asal menyimpang dari UTC. Untuk WMI, didorong, tetapi tidak diperlukan, untuk mengonversi waktu menjadi GMT (offset UTC nol).

Anda harus memasukkan semua bidang dengan panjang yang ditunjukkan, menggunakan nol di depannya yang sesuai untuk jenis tersebut. Namun, gunakan tanda bintang untuk menunjukkan bidang yang tidak digunakan atau sebagai nilai kartubebas. Anda bisa menggunakan tanda bintang (*) di mana saja kecuali klausa WHERE kueri. Misalnya, tanggal dan waktu dengan tahun yang tidak ditentukan dapat terjadi dalam tahun apa pun. Jika Anda ingin membiarkan bidang tidak ditentukan, Anda harus mengganti seluruh bidang dengan tanda bintang.

Contoh berikut menjelaskan penggunaan tanda bintang yang valid dan tidak valid:

  • 19980416******.000000+*** (Legal)
  • 1998-04-16 ******:*** (Ilegal)
  • 199*0416******.000000+*** (Ilegal)
  • 199*-04-16 ******:*** (Ilegal)

Jika tanggalwaktu digunakan untuk mewakili titik waktu tertentu, semua bidangnya harus menyertakan data. Jika digunakan untuk mewakili rentang waktu, hanya bidang yang diperlukan untuk menyampaikan durasi harus menyertakan data.

Contoh berikut menjelaskan "April first": tanggal yang relatif terhadap beberapa tahun yang tidak ditentukan tetapi masih merupakan titik yang ditentukan jika tingkat detail pengukuran adalah satu hari.

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

Mengatur Offset UTC dan GMT

Contoh berikut menjelaskan bagaimana Anda dapat menentukan waktu tanpa zona waktu dengan menempatkan tanda bintang di bidang UUU setelah tanda plus atau dikurangi:

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

Aplikasi menginterpretasikan referensi tanggal dan waktu yang tidak dizon ke kronometer abstrak lokal dalam sistem operasi yang dijalankan. Misalnya, komputer portabel dapat memiliki jam internal yang pengaturannya mungkin atau mungkin tidak sesuai dengan zona waktu geografis. Anda dapat menginterpretasikan waktu yang tidak bersyarat dengan mengganti zona waktu sumber waktu abstrak saat ini daripada zona waktu lokal.

Anda harus memberikan pertimbangan khusus untuk arti offset UTC dengan tanggal dan waktu dalam kueri. Secara umum, kesetaraan, lebih besar dari, atau kurang dari perbandingan bekerja antara dua tanggal dan waktu jika tanggal dan waktu menggunakan offset UTC yang sama. Saat berhadapan dengan tanggal dan waktu yang terjadi dengan offset zona waktu yang berbeda, Anda harus terlebih dahulu mengonversi tanggal dan waktu menjadi GMT.

Kueri yang melibatkan tanggal dan waktu relatif dengan tanda bintang dalam satu atau beberapa subbidang hanya bermakna bagi WMI jika dibandingkan dengan kesetaraan. Selanjutnya, WMI tidak mengizinkan penggunaan tanda bintang sebagai kartubebas. Sebaliknya, WMI membandingkan tanggal dan waktu relatif berdasarkan karakter untuk karakter.

Contoh berikut menjelaskan dua tanggal yang tidak dianggap sama oleh kueri WMI:

  • 19980401135809.000000+***
  • 19980401135809.000000+000

Mengonversi ke format FILETIME atau VT_DATE

Format DATETIME CIM hanya digunakan dalam WMI. Anda dapat mengonversi ke dan dari format WMI dan format FILETIME atau VT_DATE dengan memanggil metode objek skrip SWbemDateTime . Struktur tanggalwaktuFILETIME adalah nilai 64-bit yang digunakan sistem operasi Windows 32-bit. format VT_DATE adalah nilai tanggalwaktu varian otomatisasi yang digunakan oleh Visual Basic dan ActiveX. Tabel berikut mencantumkan metode konversi.

Metode Deskripsi
SWbemDateTime.GetFileTime Mendapatkan nilai DATETIME dalam format FILETIME .
SWbemDateTime.GetVarDate Mendapatkan nilai DATETIME dalam format VT_DATE.
SWbemDateTime.SetFileTime Mengatur properti DATETIME menggunakan tanggal FILETIME sebagai input.
SWbemDateTime.SetVarDate Mengatur properti DATETIME menggunakan tanggal VT_DATE sebagai input.

Format Tanggal dan Waktu

Tentang WMI

Tugas WMI: Tanggal dan Waktu

Interval Format

SWbemObject.Put_

SWbemServicesEx.Put

SWbemDateTime

IWbemClassObject::P ut

IWbemServices::P utClass