Datetime 使用VBScript在本地获取另一个时区信息

Datetime 使用VBScript在本地获取另一个时区信息,datetime,vbscript,timezone,Datetime,Vbscript,Timezone,我有一个小挑战需要你的帮助 我有一个中央服务器,在CET/CEST(西欧)时区 我想随时了解此服务器与其他计算机之间的时差,以BRT/BRST(巴西)时区和KST(韩国)时区为单位 防火墙设置阻止我直接查询计算机或时间服务器 我认为所有信息都可以在本地获得,因为当我使用Windows的“附加时钟”功能时,我可以获得任何时区的时间,同时考虑到这里和那里的DST 挑战在于如何在VBScript中实现 我已经看到我可以在 \\HKEY_LOCAL_MACHINE\\SOFTWARE\Micro

我有一个小挑战需要你的帮助

我有一个中央服务器,在CET/CEST(西欧)时区

我想随时了解此服务器与其他计算机之间的时差,以BRT/BRST(巴西)时区和KST(韩国)时区为单位

防火墙设置阻止我直接查询计算机或时间服务器

我认为所有信息都可以在本地获得,因为当我使用Windows的“附加时钟”功能时,我可以获得任何时区的时间,同时考虑到这里和那里的DST

挑战在于如何在VBScript中实现

我已经看到我可以在

    \\HKEY_LOCAL_MACHINE\\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
但它似乎不能解释DST

任何人都曾尝试过这样做,并且愿意分享他/她的发现

谢谢你的帮助


Maxime

正如JosefZ所建议的,使用PowerShell是一个非常好的主意

Dim PSCommand
Set Shell = CreateObject("Wscript.shell")

PSCommand = "powershell -command [String]$zone = 'Korea Standard Time';[TimeZoneInfo]$tz = [TimeZoneInfo]::FindSystemTimeZoneById($zone);[TimeZoneInfo]$local_tz = [TimeZoneInfo]::Local;[DateTimeOffset]$now = [DateTimeOffset]::UtcNow;[TimeSpan]$zone_offset = $tz.GetUtcOffset($now);[TimeSpan]$local_offset = $local_tz.GetUtcOffset($now);$diff = $zone_offset - $local_offset;$mydiff = $diff.Hours;Write-Host $mydiff"

Set Executor = Shell.Exec(PSCommand)
executor.StdIn.Close
wscript.echo executor.StdOut.ReadAll()

您能否在Powershell中利用
.NET
框架?