PowerShell 中是否有一种巧妙的方法来确定另一个时区的过去日期是否是夏令时?情况是这样的,我们的数据库位于欧洲,时间和日期是该服务器本地的。由于欧洲和美国在不同时间开始和停止 DST,因此我需要考虑这些时间的时差。
谢谢你的建议。
无需尝试确定 DST 是否有效。只需让 .NET Framework 为您完成转换即可。
首先,确定您要转换的时区 ID。
您说您的输入时间是在欧洲,但您没有具体说明具体地点。和美国一样,欧洲有多个时区。我假设您指的是 CET/CEST (UTC+1/+2)。在 Windows 中,您可以使用以下任何标识符来实现此目的:
"Central Europe Standard Time"
"Central European Standard Time"
-
"Romance Standard Time"
(为什么?谁知道呢。)
-
"W. Europe Standard Time"
(不要被名字所迷惑,它仍然是中心)
除了显示名称之外,这些都相同(在 Windows 中)。如果您想准确选择哪一个,请参阅CLDR 参考.
对于美国中部时区,请使用"Central Standard Time"
.
然后只需使用TimeZoneInfo.ConvertTimeBySystemTimeZoneId函数,如下:
# collect your input (through db, or whatever mechanism you have)
$inputDateTime = Get-Date -Date "2017-06-27 00:00:00"
# pick your time zones
$fromTimeZone = "Central Europe Standard Time" # EU
$toTimeZone = "Central Standard Time" # USA
# convert
$outputDateTime = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId(
$inputDateTime, $fromTimeZone, $toTimeZone)
# output
Write-Output $outputDateTime
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)