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
CIMWin32.mof
DLL
CIMWin32.dll

Lihat juga

CIM_Setting

Kelas Sistem Operasi

SWbemDateTime

Format Tanggal dan Waktu

Tugas WMI: Tanggal dan Waktu