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

PowerShell:奇怪的日期格式字符串到日期时间,powershell,datetime-format,data-conversion,string-to-datetime,Powershell,Datetime Format,Data Conversion,String To Datetime,我在处理从事件日志导出的奇怪日期格式时遇到问题 如下所示: 2018年5月14日星期一09:32:59 UTC 我尝试了generic获取日期,一直到: $stringToDatetime2 = [Datetime]::ParseExact("$($TaskFailures[0].time)", "ddd MMM dd HH:mm:ss ZZZ yyyy", $null) 我有一种感觉,很明显我可能做错了什么。这就是我得到的感觉。你问的问题是“我如何获得[DateTime]::ParseExa

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

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

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

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

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

你问的问题是“我如何获得
[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)
注意(作弊)
。替换


不幸的是,我无法找到一种可靠的方法来识别所有时区缩写。如果您的日志文件只有UTC格式(大多数都是,因为服务器通常不受时区限制,并且是以UTC格式配置的),您就没事了。

您要问的问题是“如何获得
[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)
注意(作弊)
。替换


不幸的是,我无法找到一种可靠的方法来识别所有时区缩写。如果您的日志文件只有UTC格式(大多数都是,因为服务器通常是时区不可知的,并且是在UTC中配置的),您就没事了。

嗯,该字符串不是有效的日期。您必须自己解析它,并生成可以转换为日期的内容。事件中导出的日期是什么?或事件中的部分文本?该字符串怎么不是有效日期?这是自Unix时代以来的1526290379秒,使用UTC中的“C”语言环境格式化。请在Linux机器上的bash中尝试
LC_ALL=C date-u--date=@1526290379
。@incorrigible1是一个单独的列,谢天谢地。。。。主要是UTC位让我不舒服,因为如何处理ZZZ似乎不起作用。。。或任何时区3字母指示器,如EST。。。您如何使get date或[datetime]识别您正在使用
get EventLog
检索此内容?嗯,该字符串不是有效的日期。您必须自己解析它,并生成可以转换为日期的内容。事件中导出的日期是什么?或事件中的部分文本?该字符串怎么不是有效日期?这是自Unix时代以来的1526290379秒,使用UTC中的“C”语言环境格式化。请在Linux机器上的bash中尝试
LC_ALL=C date-u--date=@1526290379
。@incorrigible1是一个单独的列,谢天谢地。。。。主要是UTC位让我不舒服,因为如何处理ZZZ似乎不起作用。。。或任何时区3字母指示器,如EST。。。如何让get-date或[datetime]识别您正在使用
get-EventLog
检索此日志?