PowerShell:奇怪的日期格式字符串到日期时间

PowerShell: Weird date format string to date time

我在处理从事件日志导出的奇怪日期格式时遇到问题。

看起来像下面这样: 5 月 14 日星期一 09:32:59 UTC 2018

我尝试了通用 Get-date,一直到:

$stringToDatetime2 = [Datetime]::ParseExact("$($TaskFailures[0].time)", "ddd MMM dd HH:mm:ss ZZZ yyyy", $null)

我感觉我可能做错了很明显的事情。这就是我的感受。

你问的问题是"how do I get [DateTime]::ParseExact to treat 'UTC' as '+0000'?"。

我无法使它起作用,但我确实使以下方法起作用:

[DateTimeOffset]::ParseExact(
    "Mon May 14 09:32:59 UTC 2018".Replace("UTC", "+0000"),
    "ddd MMM dd HH:mm:ss zzz yyyy",
    [CultureInfo]::InvariantCulture)

注意(作弊).Replace

遗憾的是,我找不到一种可靠的方法来识别所有时区缩写。如果您的日志文件只使用 UTC(大多数是,因为服务器通常与时区无关,并且配置为 UTC),您会没事的。