如何在PowerShell中将完整月份(法语)解析为datetime对象?

时间:2017-02-27 22:20:08

标签: powershell datetime

我有一个日期字符串,我想将其解析为日期时间对象。我有这个:

$invoice = '9 février 2017'
[datetime]::parseexact($invoice, 'dd MMMM yyyy', $null)

但它不起作用。如何将月份(总是法语BTW)转换为日期时间对象?

1 个答案:

答案 0 :(得分:9)

DateTime.ParseExact的第三个参数是IFormatProvider,您可以向其传递CultureInfo实例,在该上下文中应该解释字符串,因此您必须将表示法语的对象传递给它培养:

[datetime]::ParseExact($invoice, 'd MMMM yyyy', [cultureinfo]::GetCultureInfo('fr-FR'))

请注意,我必须将dd更改为d,因为您的输入字符串的日期索引只有一位数。

通过传递$null作为第三个参数,您隐式使用当前文化,如[cultureinfo]::CurrentCulture所示。 [1]

[1]自动$PSCulture变量也有效,但前提是文化没有在会话中更改。