我需要不同文化的 FullDateTime 格式的日期时间值的字符串输出。 结果应与在目标文化(此处为“de-DE”)下运行的系统上此命令的输出相同:
$date = [datetime]::new(2022,2,28,10,33,0)
$date.ToString('F')
# Montag, 28. Februar 2022 10:33:00
这是我期望工作的 Powershell 代码:
$de = [cultureInfo]::new('de-DE') # sample of any target-culture
[datetime]::ParseExact($date, $de.DateTimeFormat.FullDateTimePattern, $de)
...但这会引发错误。
我不能在我的项目中使用 ParseExact,因为我需要尊重为该文化所做的日期时间格式的任何(手动)修改。
最后的答案很简单。 'toString' 有第二个参数:
$de = [cultureInfo]::new('de-DE')
$date.ToString($de.DateTimeFormat.FullDateTimePattern, $de)
以同样的方式适用于任何其他目标文化。