PowerShell转换RFC2822格式日期时提示格式不被识别如何解决
错误原因
[DateTime]::ParseExact方法的第二个参数要求传入和输入字符串完全匹配的日期格式标识,你填写的[R][1]属于无效参数,无法对应RFC 2822格式的日期字符串。- 兼容RFC 2822格式的标准日期格式符为
r(对应RFC1123标准,完全匹配你输入的星期、英文月份、UTC时区的日期结构)。
修正后的代码
Write-Host ([Datetime]::ParseExact('Thu Oct 07 09:23:26 UTC 2021', 'r', $null)).ToString("yyyyMMdd")
- 上述代码运行后输出结果为
20211007,符合转换需求。
额外注意事项
- 如果后续需要匹配的RFC 2822日期里时区不是UTC/GMT、而是数字偏移格式(比如
+0800),可以改用自定义格式字符串ddd MMM dd HH:mm:ss zzz yyyy。 - 如果输入的星期、月份是其他语言的缩写,需要在第三个参数传入对应文化实例,不要填
$null,避免匹配失败。
内容的提问来源于stack exchange,提问作者GFL
相关产品推荐
相关产品推荐

