我正在尝试在 Windows 10 中创建一个合成时区 GMT+20(以测试我们的软件是否适用于极端客户端-服务器 TZ 差异场景):
$standardDisplayName = "(GMT+20:00) Synthetic 20"
$standardName = "My Time"
$baseUtcOffset = New-TimeSpan -Hours 20
$daylightDisplayName=[string]::Empty
$adjustmentRules=$null
$disableDaylightSavingTime=$false
$newTZ = [TimeZoneInfo]::CreateCustomTimeZone($standardName, $baseUtcOffset, $standardDisplayName, $standardName,$daylightDisplayName,$adjustmentRules,$disableDaylightSavingTime)
我得到了
"The TimeSpan parameter must be within plus or minus 14.0 hours."
有没有办法解决?
答案1
使用 .NET 方法是不可能的时区信息.创建自定义时区, 作为BaseUtcOffset属性的值应介于 14 和 -14 之间。
证明:https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.baseutcoffset?view=net-5.0