【问题标题】:Powershell Get-Date not formatting properlyPowershell Get-Date 格式不正确
【发布时间】:2018-04-10 22:24:54
【问题描述】:

我有一个从某处读取的日期,因此我将其作为字符串值检索。我的文化是 de-DE,但在脚本在 en-US 中运行时需要时间来获得 AM/PM:

$date = 10.04.2018 14:40:20
$NewDate = Get-Date -Date $date -Format "dd MMM yyyy h:mm:ss tt"

我想要的是 $NewDate 是 2018 年 4 月 10 日下午 2:40:20,但我只能得到 2018 年 4 月 10 日 2:40:20。在英语中,tt 可以很好地转换为 AM/PM,但我如何在这里得到它?

【问题讨论】:

  • 你在 en_US 系统上运行过这个吗?结果如何?

标签: powershell datetime culture


【解决方案1】:

如果你想依赖一个特定的日期字符串,无论你的脚本在哪里以及使用什么文化信息运行,你都必须为你的输出定义一个固定的文化信息:

$date = '10.04.2018 14:40:20'
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture('en-US')
(Get-Date $date).ToString('dd MMM yyyy h:mm:ss tt', $culture)

输出:

10 Apr 2018 2:40:20 PM

即使在您的“de-DE”机器上,输出也将始终相同。您可以在我的回答 here 中阅读有关日期格式的更多信息。

【讨论】:

    【解决方案2】:

    看看这个article,并修改这个代码来实现你想要的。

    $cultures = "en-US","en-GB","fr-CA","fr-FR","ms-MY","zh-HK", "de-DE"
    
    foreach ($c in $cultures)
    
    {
    
     $culture = New-Object system.globalization.cultureinfo($c)
    
     $date = get-date -format ($culture.DateTimeFormat.LongTimePattern)
    
     New-Object psobject -Property @{"name"=$culture.displayname; "date"=$date}
    
    }
    

    另外一定要看看$culture.DateTimeFormat的各种属性。

    【讨论】:

    • 这可能有效,或者其中一些代码。我想我会动态获取当前的文化,但我只需要自定义格式的格式
    【解决方案3】:

    $date 变量不是日期时间类型。实际上,这个任务不会运行。我假设您打算将其设为字符串。使用ParseExact() 将其转换为日期。

    $date = [datetime]::ParseExact('10.04.2018 14:40:20','M.d.yyyy H:m:s', $null)
    $NewDate = Get-Date -Date $date -Format "dd MMM yyyy h:mm:ss tt"
    

    【讨论】:

    • 假设 OP 只是忘记了 $date = '10.04.2018 14:40:20' 上的引号,那么他们的代码会运行,因为该字符串将被转换为 DateTime。我怀疑问题出在 de-DE 文化和那里的互操作上。
    • 我的问题实际上是,在美国,4 月 10 日是 2018 年 4 月 10 日,而在德国是 2018 年 10 月 4 日。我不能使用 parseExact,因为我不知道它始终采用的确切格式。
    • 如果不知道传入的数据,不知怎么办。正如@KoryGill 建议的那样,选择一种文化仍然需要根据传入的数据格式来完成。程序在美国机器上运行时传入的数据是 en_US 格式,在德国机器上运行时是 de_DE 格式吗?
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多