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

时间:2018-05-14 17:14:27

标签: powershell datetime-format data-conversion string-to-datetime

我无法处理从事件日志中导出的奇怪日期格式。

如下所示: 星期一5月14日09:32:59 UTC 2018年

我尝试了通用获取日期,一直到:

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

我有一种感觉,我可能做错了很明显。这就是我得到的那种感觉。

1 个答案:

答案 0 :(得分:3)

您提出的问题是"如何让[DateTime]::ParseExact对待' 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格式配置),那么您就可以了。