首页 > 解决方案 > PowerShell:奇怪的日期格式字符串到日期时间

问题描述

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

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

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

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

我有一种感觉,我可能做错了什么,这是显而易见的。这就是我得到的感觉。

标签: powershelldatetime-formatdata-conversionstring-to-datetime

解决方案


您要问的问题是“我如何[DateTime]::ParseExact将 'UTC' 视为 '+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),那么您会没事的。


推荐阅读