我使用powershell命令测试我们的基础架构:
[System.TimeZoneInfo]::Local.Id
返回类似
的字符串Eastern Standard Time
我们的服务器现在都是英文服务器,但是如果我在非英语窗口上运行它,我很确定这个测试会失败。
有没有办法检查时区而不必检查英文字符串?
答案 0 :(得分:4)
而不是使用[System.TimeZoneInfo]::Local.Id
使用[System.Timezoneinfo]::Local.BaseUtcOffset
,它将根据您使用的服务器的UTC时间和服务器时区之间的小时数差异给出结果。
修改强>
@LotPings是正确的,BaseUtcOffset不会考虑DST,如果你只关心验证时区没有改变你的标准可能无关紧要,但如果重要的是你可以使用[System.TimeZoneInfo]::Local.GetUtcOffset($(get-date))
这将获得当前的UTC偏移量。