我在尝试解析时遇到问题,并使用::parseexact
在PowerShell中将字符串转换为[DateTime]格式。谁能告诉我哪里不好?
这是我的代码。
[datetime]::parseexact('2018-05-07T15:19:17.839+03:00','o', 'yyyy-MM-ddTHH:mm:ss.fffzzz')
这是一个错误
找不到“parseexact”的重载和参数count:“3”。 在行:1个字符:1 + [datetime] :: parseexact('2018-05-07T15:19:17.839 + 03:00','o','yyyy-MM- ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodException + FullyQualifiedErrorId:MethodCountCouldNotFindBest
答案 0 :(得分:1)
正如评论中所述,您可以将代码更改为[datetime]::parseexact('2018-05-07T15:19:17.839+03:00', 'yyyy-MM-ddTHH:mm:ss.fffzzz',$null)
,如果您不关心CultureInfo
,那么这将对您有用。
但正如我在您的代码中所看到的那样,您正在为ParseExact
函数提供3个参数,这让我想知道您是否真的想要更改CultureInfo
。如果你想改变它,你可以做这样的事情 -
([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('en-GB'))
或强>
([datetime]::ParseExact($date,"dd/MM/yyyy",[Globalization.CultureInfo]::CreateSpecificCulture('de-DE'))
等等取决于您的要求。
额外信息 -
在 DateTime.ParseExact(字符串,字符串[],的IFormatProvider,DateTimeStyles) method解析与任何一个匹配的日期的字符串表示形式 分配给formats参数的模式。如果是字符串s 与任何这些模式中的任何一个都不匹配 由styles参数定义,该方法抛出FormatException。 除了将s与多种格式化模式进行比较,而不是 一个格式化模式,这个重载行为与 DateTime.ParseExact(字符串,字符串,的IFormatProvider,DateTimeStyles) 方法
style
参数是枚举值的按位组合,表示允许的s格式(输入日期)。要指定的典型值为None。
有关详细信息,请参阅Get-Date Formatting Culture。