Objek SWbemDateTime
Objek SWbemDateTime adalah objek pembantu untuk mengurai dan mengatur nilai tanggalwaktu Common Information Model (CIM). Ini memainkan peran yang mirip dengan SWbemObjectPath, yang memberikan bantuan untuk memformat dan menginterpretasikan jalur objek. Anda dapat menggunakan panggilan VBScript CreateObject untuk membuat objek SWbemDateTime .
Objek SWbemDateTime dapat diinisialisasi dari dan diformat dalam nilai VT_DATE atau FILETIME menggunakan metode pada objek . Dengan menggunakan properti objek, nilai dapat diurai ke dalam tahun komponen, bulan, hari, jam, menit, detik, atau mikrodetik. Objek SWbemDateTime dapat diformat menjadi nilai Waktu Universal Terkoordinasi (UTC) atau lokal. Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu.
SWbemDateTime adalah satu-satunya objek pembuatan skrip Windows Management Instrumentation (WMI) yang ditandai aman untuk inisialisasi dan skrip yang berjalan pada halaman HTML di Internet Explorer.
Anggota
Objek SWbemDateTime memiliki jenis anggota ini:
Metode
Objek SWbemDateTime memiliki metode ini.
Metode | Deskripsi |
---|---|
GetFileTime | Mengonversi tanggal dan waktu FILETIME , yang dinyatakan sebagai BSTR, ke format DATETIME WMI. |
GetVarDate | Mengonversi nilai tanggal dan waktu yang diformat WMI DATETIME menjadi VT_DATE. |
SetFileTime | Mengonversi format DATETIME WMI ke tanggal dan waktu FILETIME , yang dinyatakan sebagai BSTR. |
SetVarDate | Mengonversi tanggal dan waktu yang diformat VT_DATE menjadi TANGGALWAKTU WMI. |
Properti
Objek SWbemDateTime memiliki properti ini.
Properti | Jenis akses | Deskripsi |
---|---|---|
Hari |
Baca/Tulis |
Komponen hari dari nilai tanggalwaktu CIM. |
DaySpecified |
Baca/Tulis |
Menunjukkan apakah hari ditentukan atau dibiarkan sebagai kartubebas. |
Jam |
Baca/Tulis |
Komponen jam hari dari nilai tanggalwaktu CIM. |
Jam Ditentukan |
Baca/Tulis |
Menunjukkan apakah jam ditentukan atau dibiarkan sebagai kartubebas. |
IsInterval |
Baca/Tulis |
Menunjukkan bahwa setidaknya satu komponen tanggalwaktu CIM mewakili interval daripada tanggal. |
Mikrodetik |
Baca/Tulis |
Komponen mikro detik dari nilai tanggalwaktu CIM. |
MicrosecondsSpecified |
Baca/Tulis |
Menunjukkan apakah komponen microseconds ditentukan atau dibiarkan sebagai wildcard. |
Menit |
Baca/Tulis |
Komponen menit dari nilai tanggalwaktu CIM. |
Menit Ditentukan |
Baca/Tulis |
Menunjukkan apakah komponen menit ditentukan atau dibiarkan sebagai wildcard. |
Bulan |
Baca/Tulis |
Komponen bulan dari nilai tanggalwaktu CIM. |
MonthSpecified |
Baca/Tulis |
Menunjukkan apakah bulan ditentukan atau dibiarkan sebagai kartubebas. |
Detik |
Baca/Tulis |
Komponen detik dari nilai tanggalwaktu CIM. |
DetikDispesifikasikan |
Baca/Tulis |
Menunjukkan apakah komponen detik ditentukan atau dibiarkan sebagai wildcard. |
UTC |
Baca/Tulis |
Komponen UTC dari nilai tanggalwaktu CIM. |
UTCDispesifikasikan |
Baca/Tulis |
Menunjukkan apakah komponen UTC ditentukan atau dibiarkan sebagai kartubebas. |
Nilai |
Baca/Tulis |
Nilai tanggalwaktu CIM lengkap. |
Tahun |
Baca/Tulis |
Komponen tahun dari nilai tanggalwaktu CIM. |
YearSpecified |
Baca/Tulis |
Menunjukkan apakah tahun ditentukan atau dibiarkan sebagai kartubebas atau tidak. |
Keterangan
WMI merekam tanda waktu dalam format koordinat waktu universal (UTC). UTC bukanlah format yang digunakan sebagian besar pengembang dan administrator TI. Oleh karena itu, masalah umum adalah menentukan cara menerjemahkan UTC ke dalam sesuatu yang lebih mudah dibaca. Untuk informasi selengkapnya tentang cara bekerja dengan UTC, lihat Tugas WMI: Tanggal dan Waktu dan Bekerja dengan Tanggal dan Waktu menggunakan WMI. Anda juga dapat membaca posting blog It s About Time (Oh, dan About Dates, Too) untuk informasi tambahan.
Bidang numerik apa pun dapat memiliki nilai kartubebas jika properti IsInterval diatur ke FALSE. Bidang dengan nilai kartubebas berisi tanda bintang di seluruh bidang.
Setiap properti, misalnya Hari, memiliki nilai Boolean tertentu yang sesuai, seperti DaySpecified. Ketika DaySpecified adalah FALSE, maka nilai ditafsirkan sebagai interval daripada angka antara 01 dan 31. Jika interval digunakan di mana saja dalam nilai tanggalwaktu CIM, maka IsInterval juga diatur ke TRUE. Defaultnya adalah untuk nilai tanggalwaktu CIM berisi tanggal daripada satu atau beberapa interval.
Misalnya, jika SWbemDateTime.DaySpecified adalah TRUE, maka SWbemDateTime.Value menyertakan nilai SWbemDateTime.Day saat ini, jika tidak, itu adalah nilai wildcard. Properti IsInterval adalah FALSE dalam kedua kasus.
Contoh
Contoh kode skrip berikut menunjukkan cara menggunakan objek SWbemDateTime untuk mengurai nilai properti tanggalwaktu yang dibaca dari repositori WMI, properti InstallDate di Win32_OperatingSystem.
' Create a new datetime object.
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
' Retrieve a WMI object that contains a datetime value.
for each os in GetObject( _
"winmgmts:").InstancesOf ("Win32_OperatingSystem")
' The InstallDate property is a CIM_DATETIME.
MsgBox os.InstallDate
dateTime.Value = os.InstallDate
' Display the year of installation.
MsgBox "This OS was installed in the year " & dateTime.Year
' Display the installation date using the VT_DATE format.
MsgBox "Full installation date (VT_DATE format) is " _
& dateTime.GetVarDate
' Display the installation date using the FILETIME format.
MsgBox "Full installation date (FILETIME format) is " _
& dateTime.GetFileTime
next
Set datetime = Nothing
Contoh berikut menunjukkan cara membuat objek SWbemDateTime , menyimpan nilai tanggal dalam objek, menampilkan tanggal sebagai Waktu Universal Lokal dan Terkoordinasi (UTC), dan menyimpan nilai di kelas dan properti yang baru dibuat. Untuk informasi selengkapnya tentang wbemCimtypeDatetime konstan, lihat WbemCimtypeEnum.
' Create an SWbemDateTime object.
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
' Set the value
Const wbemCimTypeDatetime = 101
' Construct a datetime value using the intrinsic VBScript CDate
' function interpreting this as a local date/time in
' the Pacific time zone (-8 hrs GMT). Convert to CIM datetime
' using SetVarDate method. The year defaults to current year.
dateTime.SetVarDate (CDate ("January 20 11:56:32"))
' The value in dateTime displays as
' 20000120195632.000000-480. This is the equivalent time
' in GMT with the specified offset for PST of -8 hrs.
MsgBox "CIM datetime " & dateTime
' The value now displays as B=0/2000 11:56:32 AM because the
' parameter contains the default TRUE value causing the value to be
' interpreted as a local time.
MsgBox "Local datetime " & dateTime.GetVarDate ()
' The value now displays as B=0/2000 7:56:32 PM because the
' parameter value is FALSE, which indicates a GMT time.
' non-local time.
MsgBox "Datetime in GMT " & dateTime.GetVarDate (false)
' Create a new class and add a DateTime property value.
' SWbemServices.Get returns an empty SWbemObject
' which can become a new class. SWbemObject.Path_ returns an
' SWbemObjectPath object.
set NewObject = GetObject("winmgmts:root\default").Get
NewObject.Path_.Class = "NewClass"
' Add a new property named "InterestingDate" to the NewObject class
' and define its datatype as a CIM datetime value.
NewObject.Properties_.Add "InterestingDate", wbemCimtypeDatetime
' Set the new value of the SWbemDateTime object in the InterestingDate
' property.
NewObject.InterestingDate = dateTime.Value
MsgBox "Datetime in new object " & NewObject.InterestingDate
' Write the new class (named "NewClass") containing
' the SWbemDateTime object to the repository.
NewObject.Put_
WScript.Echo "NewClass is now in WMI repository"
' Clean up the example by deleting the new class from the repository
NewObject.Delete_
Contoh kode skrip berikut menunjukkan cara menggunakan objek SWbemDateTime untuk mengubah nilai interval pada properti yang dibaca dari repositori WMI.
' Construct an interval value of 100 days, 1 hour, and 3 seconds.
dateTime.IsInterval = true
dateTime.Day = 100
dateTime.Hours = 1
dateTime.Seconds = 3
' The datetime displays as 00000100010003.000000:000.
MsgBox "Constructed interval value " & datetime
' Retrieve an empty WMI object and add a datetime property.
Const wbemCimTypeDatetime = 101
Set NewObject = GetObject("winmgmts:root\default").Get
NewObject.Path_.Class = "Empty"
NewObject.Properties_.Add "InterestingDate", wbemCimtypeDatetime
' Set the new value in the property and update.
NewObject.InterestingDate = dateTime.Value
MsgBox "NewObject.InterestingDate = " & NewObject.InterestingDate
' Write the new SWbemDateTime object to the repository.
NewObject.Put_
' Delete the object.
NewObject.Delete_
Contoh kode skrip berikut menunjukkan cara menggunakan objek SWbemDate untuk membaca nilai FILETIME .
' Create a new datetime object.
Set datetime = CreateObject("WbemScripting.SWbemDateTime")
' Set from a FILETIME value (non-local).
' Assume a timezone -7 hrs. GMT.
MsgBox "FILETIME value " & "126036951652030000"
datetime.SetFileTime "126036951652030000", false
' Displays as 5/24/2000 7:26:05 PM.
MsgBox "GMT time " & dateTime.GetVarDate
' Set from a FILETIME value (local).
datetime.SetFileTime "126036951652030000"
' Displays as 5/25/2000 2:26:05 AM.
MsgBox "Same value in local time " & dateTime.GetVarDate
Set datetime = Nothing
Kode PowerShell berikut membuat instans objek SWbemDateTime, mengambil tanggal penginstalan OS, dan mengonversi tanggal ke format yang berbeda
# Create swbemdatetime object
$datetime = New-Object -ComObject WbemScripting.SWbemDateTime
# Get OS installation time and assign to datetime object
$os = Get-WmiObject -Class Win32_OperatingSystem
$dateTime.Value = $os.InstallDate
# Now display the time
"This OS was installed in the year {0}" -f $dateTime.Year
"Full installation date (VT_DATE format) is {0}" -f $dateTime.GetVarDate()
"Full installation date (FILETIME format) is {0}" -f $dateTime.GetFileTime()
Kode Powershell berikut menerjemahkan kode ke dalam format yang siap digunakan oleh penyedia CIM.
$time = (Get-Date)
$objScriptTime = New-Object -ComObject WbemScripting.SWbemDateTime
$objScriptTime.SetVarDate($time)
$cimTime = $objScriptTime.Value
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista |
Server minimum yang didukung |
Windows Server 2008 |
Header |
|
Pustaka jenis |
|
DLL |
|
CLSID |
CLSID_SWbemDateTime |
IID |
IID_ISWbemDateTime |