下面这段VBS代码,可以得到本地时间与UTC时间的时差(分钟),以及它们之间的转换。
Dim localTime,strComputer, objWMIService, colTimeZone, objTimeZone, colComputerSystem, objComputerSystem
Dim UTCLocalDIFF, UTCTime
localTime = Now
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputerSystem = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objComputerSystem In colComputerSystem
If objComputerSystem.DaylightInEffect Then
Set colTimeZone = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objTimeZone In colTimeZone
UTCLocalDIFF = objTimeZone.DaylightBias - objTimeZone.Bias ' in Minutes
HMIRuntime.Trace "Difference between LocalTime and UTC(Minutes): " & UTCLocalDIFF & vbCrLf
Next
Else
Set colTimeZone = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objTimeZone In colTimeZone
UTCLocalDIFF = -1 * objTimeZone.Bias 'in Minutes
HMIRuntime.Trace "Difference between LocalTime and UTC(Minutes): " & UTCLocalDIFF & vbCrLf
Next
End If
Next
UTCTime = DateAdd("n",UTCLocalDIFF,localTime)
HMIRuntime.Trace "Locale Time: " & localTime & vbCrLf
HMIRuntime.Trace "UTC Time: " & UTCTime & vbCrLf
Set colComputerSystem = Nothing
Set objWMIService = Nothing