【问题标题】:How to parse (French) full month into datetime object in PowerShell?如何在 PowerShell 中将(法语)整月解析为日期时间对象?
【发布时间】:2018-06-20 04:04:57
【问题描述】:

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

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

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

【问题讨论】:

  • 不确定它是否相关但 $null in ps != null in c#

标签: powershell datetime


【解决方案1】:

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

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

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


通过将$null 作为第三个参数传递,您隐含地使用了当前 文化,正如[cultureinfo]::CurrentCulture 所反映的那样。[1]


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多