我有一个小挑战需要你的帮助。
我有一个中央服务器,位于 CET/CEST(西欧)时区。
我想随时了解该服务器与其他计算机之间的 BRT/BRST(巴西)时区和 KST(韩国)时区的时差。
防火墙设置阻止我直接查询计算机或时间服务器。
我认为所有信息都可以在本地获得,因为当我使用 Windows 的“附加时钟”功能时,我可以获取任何时区的时间,并考虑此处和那里的 DST。
挑战在于如何在 VBScript 中做到这一点。
我发现我可以读取注册表项
\\HKEY_LOCAL_MACHINE\\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
但它似乎没有考虑夏令时。
有人尝试过做这样的事情,并愿意分享他/她的发现吗?
感谢您的帮助
马克西姆
最佳答案
正如 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()
关于datetime - 使用 VBScript 在本地获取另一个时区信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39405867/