如何使用PowerShell将当前日期时间转换为时区格式?

rjjhvcjd  于 2023-06-23  发布在  Shell
关注(0)|答案(2)|浏览(195)

我试图使用PowerShell将当前日期时间转换为“2023-05- 25 T09:51:55”格式,使用时区中欧时间,但出现以下错误。

**调用参数为“2”的ConvertTimeBySystemTimeZoneId异常:“在本地计算机上找不到时区ID 'Central European Time'。”位于第2行char:1

  • $startTime = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId(
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : TimeZoneNotFoundException**

我试过下面的代码

**`$localDate = Get-Date $startTime = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([datetimeoffset] $localDate,'中欧时间')

$dtoEST.ToString('o ')-replace '.\d+(?=-)-\d+:\d+'`**
有没有人能告诉我正确的方法。

km0tfn4u

km0tfn4u1#

代码的问题是由于destinationTimeZoneId参数中的一个错别字,它应该是Central European Standard Time而不是Central European Time

$localDate = Get-Date
[TimeZoneInfo]::ConvertTimeBySystemTimeZoneId(
    [datetimeoffset] $localDate, 'Central European Standard Time').
    ToString('yyyy-MM-ddTHH:mm:ss', [cultureinfo]::InvariantCulture)

如果你不确定destinationTimeZoneId的确切名称,你可以用途:

[TimeZoneInfo]::GetSystemTimeZones() | Select-Object Id, DisplayName
qcuzuvrc

qcuzuvrc2#

在PowerShell中,我做的第一件事是定义变量,然后我喜欢从那里开始工作。
我会这样做:

$localDate = Get-Date
$targetTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById("Central European Standard Time")
$convertedTime = [System.TimeZoneInfo]::ConvertTime($localDate, $targetTimeZone)

$formattedTime = $convertedTime.ToString("yyyy-MM-ddTHH:mm:ss")

Write-Host $formattedTime

相关问题