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

标签 datetime vbscript timezone

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

我有一个中央服务器,位于 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/

相关文章:

Java SimpleDateFormat.getTimeZone().getID() 返回 Asia/Jerusalem 而不是 Asia/Kolkata

c# - 将 DATETIME 从 C# 插入到 Oracle DB 时,格式代码出现两次错误

javascript - 为什么我的 js 日期在 11 月份左右开始计算错误?

mysql - Freeradius 查询,日期时间大于 now()

mysql - MySQL 中 UNIX_TIMESTAMP 输出 NULL?

regex - 检查字符串是否为大写和数字

vbscript - 如何使用 vbscript 检查 Outlook 是否正在运行

c# - 夏令时的灰色地带

带 Root过的 XML 节点在 VBScript 中不起作用

timezone - 为什么第一个 Joda DateTime 实例获得非 UTC 年表?