kelas Win32_TimeZone
Kelas WMI Win32_TimeZone mewakili informasi zona waktu untuk sistem komputer yang menjalankan Windows, yang mencakup perubahan yang diperlukan untuk transisi ke transisi waktu musim panas.
Sintaks berikut disederhanakan dari kode Managed Object Format (MOF) dan menyertakan semua properti yang diwariskan. Properti dan metode dalam urutan alfabet, bukan urutan MOF.
Sintaks
[Dynamic, Provider("CIMWin32"), UUID("{8502C4EC-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_TimeZone : CIM_Setting
{
string Caption;
string Description;
string SettingID;
sint32 Bias;
sint32 DaylightBias;
uint32 DaylightDay;
uint8 DaylightDayOfWeek;
uint32 DaylightHour;
uint32 DaylightMillisecond;
uint32 DaylightMinute;
uint32 DaylightMonth;
string DaylightName;
uint32 DaylightSecond;
uint32 DaylightYear;
uint32 StandardBias;
uint32 StandardDay;
uint8 StandardDayOfWeek;
uint32 StandardHour;
uint32 StandardMillisecond;
uint32 StandardMinute;
uint32 StandardMonth;
string StandardName;
uint32 StandardSecond;
uint32 StandardYear;
};
Anggota
Kelas Win32_TimeZone memiliki jenis anggota ini:
Properti
Kelas Win32_TimeZone memiliki properti ini.
-
Bias
-
-
Jenis data: sint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| Bias"), Unit ("menit")
Bias saat ini untuk terjemahan waktu lokal. Bias adalah perbedaan antara Waktu Universal Terkoordinasi (UTC) dan waktu setempat. Semua terjemahan antara UTC dan waktu setempat didasarkan pada rumus berikut: UTC = waktu lokal - bias. Properti ini diperlukan.
-
-
Keterangan
-
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (64)
Deskripsi tekstual singkat dari objek saat ini.
Properti ini diwarisi dari CIM_Setting.
-
-
DaylightBias
-
-
Jenis data: sint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightBias"), Unit ("menit")
Nilai bias yang akan digunakan selama terjemahan waktu lokal yang terjadi selama waktu musim panas. Properti ini diabaikan jika nilai untuk properti DaylightDay tidak disediakan. Nilai properti ini ditambahkan ke properti Bias untuk membentuk bias yang digunakan selama siang hari. Di sebagian besar zona waktu, nilai properti ini adalah -60.
-
-
DaylightDay
-
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wDay")
DaylightDayOfWeek dari DaylightMonth ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi ini.
Contoh: Jika hari transisi (DaylightDayOfWeek) terjadi pada hari Minggu, maka nilai "1" menunjukkan Hari Minggu pertama DaylightMonth, "2" menunjukkan Hari Minggu kedua, dan sebagainya. Nilai "5" menunjukkan DaylightDayOfWeek terakhir dalam bulan tersebut.
-
-
DaylightDayOfWeek
-
-
Jenis data: uint8
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wDayOfWeek")
Hari dalam seminggu ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
-
-
Minggu (0)
-
Senin (1)
-
Selasa (2)
-
Rabu (3)
-
Kamis (4)
-
Jumat (5)
-
Sabtu (6)
Contoh: 1
DaylightHour
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wHour")
Jam dalam sehari ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
Contoh: 2
Siang HariMillisecond
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wMilliseconds")
Milidetik DaylightSecond ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
DaylightMinute
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wMinute")
Menit DaylightHour ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
Contoh: 59
DaylightMonth
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wMonth")
Bulan ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
Januari (1)
Februari (2)
Maret (3)
April (4)
Mei (5)
Juni (6)
Juli (7)
Agustus (8)
September (9)
Oktober (10)
November (11)
Desember (12)
DaylightName
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (256), MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightName")
Zona waktu yang diwakili ketika waktu musim panas berlaku.
Contoh: "EDT" (Waktu Siang Hari Timur)
DaylightSecond
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wSecond")
Kedua DaylightMinute ketika transisi dari waktu standar ke waktu musim panas terjadi pada sistem operasi.
Contoh: 59
DaylightYear
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| DaylightDate|wYear")
Tahun ketika siang hari menghemat waktu berlaku. Properti ini tidak diperlukan.
Contoh: 1997
Deskripsi
-
Jenis data: string
-
Jenis akses: Baca-saja
Deskripsi tekstual objek saat ini.
Properti ini diwarisi dari CIM_Setting.
SettingID
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: MaxLen (256)
Pengidentifikasi tempat objek saat ini diketahui.
Properti ini diwarisi dari CIM_Setting.
StandardBias
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardBias"), Unit ("menit")
Nilai bias yang digunakan ketika waktu musim panas tidak berlaku. Properti ini diabaikan jika nilai untuk StandardDay tidak disediakan. Nilai properti ini ditambahkan ke properti Bias untuk membentuk bias selama waktu standar.
Contoh: 0
StandardDay
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wDay")
StandardDayOfWeek dari StandardMonth ketika transisi dari siang hari menghemat waktu ke waktu standar terjadi pada sistem operasi.
Jika hari transisi (StandardDayOfWeek) terjadi pada hari Minggu, maka nilai "1" menunjukkan hari Minggu pertama StandardMonth, "2" menunjukkan Minggu kedua, dan sebagainya. Nilai "5" menunjukkan StandardDayOfWeek terakhir dalam sebulan.
StandardDayOfWeek
-
Jenis data: uint8
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wDayOfWeek")
Hari dalam seminggu ketika transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
Minggu (0)
Senin (1)
Selasa (2)
Rabu (3)
Kamis (4)
Jumat (5)
Sabtu (6)
StandardHour
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wHour")
Jam dalam sehari ketika transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
Contoh: 11
StandardMillisecond
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wMilliseconds")
Milidetik StandardSecond ketika transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
StandardMinute
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wMinute")
Menit StandardDay saat transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
Contoh: 59
StandardMonth
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wMonth")
Bulan ketika transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
Januari (1)
Februari (2)
Maret (3)
April (4)
Mei (5)
Juni (6)
Juli (7)
Agustus (8)
September (9)
Oktober (10)
November (11)
Desember (12)
StandardName
-
Jenis data: string
-
Jenis akses: Baca-saja
-
Kualifikasi: key, MaxLen (256), MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardName")
Nama zona waktu yang diwakili ketika waktu standar berlaku.
Contoh: "EST" (Waktu Standar Timur)
StandardSecond
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wSecond")
Kedua StandardMinute ketika transisi dari waktu musim panas ke waktu standar terjadi pada sistem operasi.
Contoh: 59
StandardYear
-
Jenis data: uint32
-
Jenis akses: Baca-saja
-
Kualifikasi: MappingStrings ("Win32API| Struktur Waktu| TIME_ZONE_INFORMATION| StandardDate|wYear")
Tahun ketika waktu standar berlaku. Properti ini tidak diperlukan.
Contoh: 1997
Keterangan
Kelas Win32_TimeZone berasal dari CIM_Setting.
Anda tidak dapat menggunakan format tanggal-waktu standar - seperti 18/10/2002 - saat menulis kueri WMI. Sebagai gantinya, Anda perlu mengonversi tanggal apa pun yang digunakan dalam kueri Anda ke format UTC. Ini memerlukan dua langkah: 1) Anda harus menentukan offset (perbedaan dalam menit) antara zona waktu Anda dan Greenwich Mean Time, dan 2) Anda harus mengonversi 18/10/2002 ke nilai UTC.
Menentukan Offset dari Waktu Rata-Rata Greenwich
Diakuinya, WMI menyulitkan untuk bekerja dengan tanggal dan waktu; Untungnya, WMI setidaknya memudahkan untuk menentukan offset antara zona waktu Anda dan Greenwich Mean Time. Kelas WMI Win32_TimeZone menyertakan properti - Bias - yang mengembalikan offset GMT.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
Wscript.Echo "Offset: "& objTimeZone.Bias
Next
Mengonversi Tanggal menjadi Nilai UTC
Setelah Anda menentukan offset GMT, Anda kemudian harus mengonversi tanggal standar seperti 18/10/2002 menjadi tanggal UTC. Untuk mengonversi tanggal standar ke tanggal UTC, Anda dapat menggunakan fungsi tanggal VBScript seperti Tahun, Bulan, dan Hari untuk mengisolasi komponen individual yang membentuk tanggal UTC. Setelah Anda memiliki nilai individual untuk komponen-komponen ini, Anda dapat menggabungkannya dengan cara yang sama seperti yang Anda lakukan pada nilai string lainnya. Tanggal UTC diperlakukan sebagai string karena offset GMT harus ditambahkan ke akhir. Jika tanggal dilihat sebagai angka, nilai ini:
20011018113047.000000-480
Akan secara keliru diperlakukan sebagai persamaan matematika (tanda kurung ditambahkan untuk kejelasan):
(20011018113047.000000) - (480)
Misalnya, dalam tanggal 18/10/2002, komponen individual adalah:
- Tahun: 2002
- Bulan: 10
- Hari: 18
Skrip perlu menggabungkan ketiga nilai ini, string "113047.000000" (mewakili waktu, termasuk milidetik), dan offset GMT untuk memperoleh tanggal UTC. Misalnya, (tanda kurung kembali ditambahkan untuk kejelasan):
(2002) & (10) & (18) & (113047.000000) & (-480)
Catatan
Anda dapat menggunakan fungsi VBScript Jam, Menit, dan Detik untuk mengonversi bagian waktu tanggal UTC. Dengan demikian, waktu seperti 11:30:47 A.M. akan dikonversi ke 113047.
Ada satu faktor yang rumit. Bulan harus mengambil posisi 5 dan 6 dalam string; hari harus mengambil posisi 7 dan 8. Ini tidak ada masalah dengan bulan 10 dan hari ke-18. Tapi bagaimana Anda mendapatkan 5 Juli (bulan 7, hari 5) untuk mengisi posisi yang diperlukan? Jawabannya adalah menambahkan nol di depan ke setiap nilai, sehingga mengubah 7 menjadi 07 dan 5 menjadi 05.
Untuk melakukan ini, gunakan fungsi VBScript Len untuk memeriksa panjang (jumlah karakter) dalam bulan dan hari. Jika panjangnya adalah 1 (artinya hanya ada satu karakter), tambahkan nol di depannya. Sehingga:
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
Contoh
Contoh VBScript berikut mengonversi tanggal saat ini menjadi tanggal UTC.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
strBias = objTimeZone.Bias
Next
dtmCurrentDate = Date
dtmTargetDate = Year(dtmCurrentDate)
dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
dtmTargetDate = dtmTargetDate & dtmMonth
dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
dtmDay = "0" & dtmDay
End If
dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)
Sampel VBScript berikut menentukan offset GMT, lalu mengonversi tanggal saat ini yang ditentukan (dalam hal ini, 18/10/2002) ke format tanggal-waktu UTC. Setelah tanggal dikonversi, nilai tersebut digunakan untuk mencari komputer dan mengembalikan daftar semua folder yang dibuat setelah 18/10/2002.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_TimeZone")
For Each objTimeZone in colTimeZone
strBias = objTimeZone.Bias
Next
dtmCurrentDate = "10/18/2002"
dtmTargetDate = Year(dtmCurrentDate)
dtmMonth = Month(dtmCurrentDate)
If Len(dtmMonth) = 1 Then
dtmMonth = "0" & dtmMonth
End If
dtmTargetDate = dtmTargetDate & dtmMonth
dtmDay = Day(dtmCurrentDate)
If Len(dtmDay) = 1 Then
dtmDay = "0" & dtmDay
End If
dtmTargetDate = dtmTargetDate & dtmDay & "000000.000000"
dtmTargetDate = dtmTargetDate & Cstr(strBias)
Set colFolders = objSWbemServices.ExecQuery _
("SELECT * FROM Win32_Directory WHERE CreationDate < '" & _
dtmtargetDate & "'")
For Each objFolder in colFolders
Wscript.Echo objFolder.Name
Next
Contoh kode VBScript berikut menampilkan pengaturan untuk instans Win32_TimeZone.
Dim arDayOrWeek(7)
arDayOrWeek(0) = "Sunday"
arDayOrWeek(1) = "Monday"
arDayOrWeek(2) = "Tuesday"
arDayOrWeek(3) = "Wednesday"
arDayOrWeek(4) = "Thursday"
arDayOrWeek(5) = "Friday"
arDayOrWeek(6) = "Saturday"
Dim arMonth(13)
arMonth(1) = "January"
arMonth(2) = "Feburary"
arMonth(3) = "March"
arMonth(4) = "April"
arMonth(5) = "May"
arMonth(6) = "June"
arMonth(7) = "July"
arMonth(8) = "August"
arMonth(9) = "September"
arMonth(10) = "October"
arMonth(11) = "November"
arMonth(12) = "December"
strComputer = "."
wmiQuery = "Select * from Win32_TimeZone"
Set objWMIService = GetObject("winmgmts:\\" & _
strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(wmiQuery)
For Each objItem in colItems
WScript.Echo "Day of Week setting is: " _
& objItem.dayLightDayOfWeek _
& " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
WScript.Echo "Hour: " & objItem.DaylightHour
WScript.Echo "Month: " & objItem.DaylightMonth _
& " which is: " & arMonth(objItem.DaylightMonth )
WScript.Echo "Description: " & objItem.DaylightName
WScript.Echo "The transition from DLS to Standard occurs: "
WScript.Echo "Day of Week setting is: " _
& objItem.standardDayOfWeek _
& " which is: " & arDayOrWeek(objItem.DaylightDayOfWeek)
WScript.Echo "Hour: " & objItem.StandardHour
WScript.Echo "Month: " & objItem.StandardMonth _
& " which is: " & arMonth(objItem.StandardMonth )
WScript.Echo "Description: " & objItem.StandardName
Next
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista |
Server minimum yang didukung |
Windows Server 2008 |
Ruang nama |
Root\CIMV2 |
MOF |
|
DLL |
|
Lihat juga