2013-04-08 28 views

Trả lời

2

Có rất nhiều ví dụ ra khỏi đó. Nếu bạn có thể truy cập vào registry này sẽ làm việc cho bạn:

od = now() 
set oShell = CreateObject("WScript.Shell") 
atb = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\" &_ 
    "Control\TimeZoneInformation\ActiveTimeBias" 
offsetMin = oShell.RegRead(atb) 
nd = dateadd("n", offsetMin, od) 
Response.Write("Current = " & od & "<br>UTC = " & nd) 

Từ http://classicasp.aspfaq.com/date-time-routines-manipulation/how-do-i-convert-local-time-to-utc-gmt-time.html

+0

Làm thế nào về trong vài giây? Tôi đã cố gắng để thay đổi "n" để "s" và nó đã không thay đổi định dạng .... – Chris

1

Bạn có thể lấy thời gian thiên vị từ Win32_TimeZoneWMI lớp.

myDate = "9/4/2013 17:23:08" 
For Each objItem In GetObject(_ 
    "winmgmts:\\.\root\cimv2").ExecQuery(_ 
    "Select * from Win32_TimeZone") 
    bias = objItem.Bias 
Next 
myDate = DateAdd("n", bias, myDate) 
WScript.Echo myDate 
12

tôi sử dụng một kỹ thuật đơn giản

Set dateTime = CreateObject("WbemScripting.SWbemDateTime")  
dateTime.SetVarDate (now()) 
wscript.echo "Local Time: " & dateTime 
wscript.echo "UTC Time: " & dateTime.GetVarDate (false) 

More info on SWbemDateTime

Nếu bạn muốn chuyển đổi UTC trở lại thời gian địa phương thực hiện điều này:

Set dateTime = CreateObject("WbemScripting.SWbemDateTime") 
     dateTime.SetVarDate now(),false REM Where now is the UTC date 
     wscript.echo cdate(dateTime.GetVarDate (true)) 
+0

Hiện nay trong mỗi cửa sổ cài đặt? – rcdmk

0

Với SetVarDate sự thay đổi bù đắp do để chuyển sang thời gian tiết kiệm ánh sáng ban ngày (từ +060 đến +120) xảy ra một giờ quá sớm. Phương thức RegRead (HKLM \ .. \ ActiveTimeBias) đã được phát hiện. Nếu sinh sản là mong muốn, chỉ cần đặt đồng hồ máy tính vào một thời điểm ngay trước và chỉ sau thời gian chuyển tiếp dự kiến ​​và kiểm tra kết quả.