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
Wbemdisp.h
Pustaka jenis
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemDateTime
IID
IID_ISWbemDateTime

Lihat juga

WbemCimtypeEnum

DATETIME

Membuat Skrip Objek API