我有点挑战我希望得到你的帮助。
我有一个中央服务器,在CET / CEST(西欧)时区。
我想随时知道此服务器与其他计算机之间在BRT / BRST(巴西)时区和KST(韩国)时区的时差。
防火墙设置阻止我直接查询计算机或时间服务器。
我认为所有信息都可以在本地获取,因为当我使用Windows' Additional Clocks'功能,我可以在任何时区得到时间,在这里和那里占DST。
挑战在于如何在VBScript中实现。
我已经看到我可以在
读取注册表项 \\HKEY_LOCAL_MACHINE\\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
但它似乎没有考虑到夏令时。
任何人都试图做这样的事情,并愿意分享他/她的发现吗?
感谢您的帮助
马克西姆
答案 0 :(得分:2)
正如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()