本文介绍了如何在 PowerShell 中通过 ::parseexact 解析日期时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在尝试使用 ::parseexact 在 PowerShell 中解析和将字符串转换为 [DateTime] 格式时遇到问题.谁能告诉我我哪里不好?这是我的代码.

I'v got a problem when trying to parse, and convert string to [DateTime] format in PowerShell using ::parseexact. Can someone tell me where's my bad?Here's my code.

[datetime]::parseexact('2018-05-07T15:19:17.839+03:00','o', 'yyyy-MM-ddTHH:mm:ss.fffzzz')

这里有一个错误

找不到parseexact"和参数计数的重载:3".在行:1 字符:1+ [日期时间]::parseexact('2018-05-07T15:19:17.839+03:00','o', 'yyyy-MM- ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : NotSpecified: (:) [], MethodException+ FullQualifiedErrorId : MethodCountCouldNotFindBest

推荐答案

如评论中所述,您可以将代码更改为 [datetime]::parseexact('2018-05-07T15:19:17.839+03:00', 'yyyy-MM-ddTHH:mm:ss.fffzzz',$null) 如果您不关心 CultureInfo.

As mentioned in the comment, you can change your code to [datetime]::parseexact('2018-05-07T15:19:17.839+03:00', 'yyyy-MM-ddTHH:mm:ss.fffzzz',$null) and that will work for you if you are not concerned with the CultureInfo.

但正如我在您的代码中看到的,您为 ParseExact 函数提供了 3 个参数,这让我怀疑您是否真的想更改 CultureInfo.如果你想改变你的,你可以做这样的事情 -

But as I can see in your code, that you are providing 3 arguments to your ParseExact function, which makes me wonder if you are really trying to change the CultureInfo. If you want to change your that, you can do something like this -

([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('en-GB'))

([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('de-DE'))

等等,取决于您的要求.

and so on depending upon your requirement.

额外信息 -

根据 msdn 文章

该DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)方法解析匹配任何日期的字符串表示形式分配给格式参数的模式.如果字符串 s不匹配这些模式中的任何一个与任何变体由styles 参数定义,该方法抛出FormatException.除了将 s 与多种格式模式进行比较,而不是与一个单一的格式化模式,这个重载的行为与DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles)方法.

style 参数是枚举值的按位组合,表示 s(输入日期)的允许格式.要指定的典型值是.

The style parameter, is a bitwise combination of enumeration values that indicates the permitted format of s(input date). A typical value to specify is None.

查看获取日期格式文化了解更多信息.

这篇关于如何在 PowerShell 中通过 ::parseexact 解析日期时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 05:17