我有一个日期字符串,我想将其解析为日期时间对象。我有这个:
$invoice = '9 février 2017'
[datetime]::parseexact($invoice, 'dd MMMM yyyy', $null)
但它不起作用。如何将月份(总是法语BTW)转换为日期时间对象?
答案 0 :(得分:9)
DateTime.ParseExact
的第三个参数是IFormatProvider
,您可以向其传递CultureInfo
实例,在该上下文中应该解释字符串,因此您必须将表示法语的对象传递给它培养:
[datetime]::ParseExact($invoice, 'd MMMM yyyy', [cultureinfo]::GetCultureInfo('fr-FR'))
请注意,我必须将dd
更改为d
,因为您的输入字符串的日期索引只有一位数。
通过传递$null
作为第三个参数,您隐式使用当前文化,如[cultureinfo]::CurrentCulture
所示。 [1]
[1]自动$PSCulture
变量也有效,但前提是文化没有在会话中更改。