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 ke 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 independen lokal sehingga Anda dapat menulis skrip yang berjalan di 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 Amerika Serikat Bahasa Inggris 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 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 ke GMT (offset UTC nol). |
Anda harus memasukkan semua bidang dengan panjang yang ditunjukkan, menggunakan nol di depan yang sesuai untuk jenis tersebut. Namun, gunakan tanda bintang untuk menunjukkan bidang yang tidak digunakan atau sebagai nilai kartubebas. Anda dapat 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 pertama": tanggal 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 minus:
- 19980401135809.000000+***
- 19980401135809.000000-***
- 1998-04-01 13:58:09:*** (Ilegal)
Aplikasi menginterpretasikan referensi tanggal dan waktu yang tidak dizoned 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 dizon 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 ke 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 pembuatan skrip SWbemDateTime. Struktur tanggalwaktu FILETIMEadalah 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. |