【问题标题】:How do I get 'date-1' formatted as mm-dd-yyyy using PowerShell?如何使用 PowerShell 将“date-1”格式化为 mm-dd-yyyy?
【发布时间】:2013-11-02 12:06:52
【问题描述】:

如何在 PowerShell 中获取 date-1 并将其格式化为 mm-dd-yyyy?

示例:如果今天是 2013 年 11 月 1 日,我的代码中需要 10-31-2013。

我以前使用过 AddDays(-1),但我似乎无法让它与任何格式选项一起使用。

【问题讨论】:

    标签: date powershell formatting


    【解决方案1】:

    您可以使用带有日期时间格式说明符的 .tostring() 方法来格式化为您需要的任何内容:

    http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

    (Get-Date).AddDays(-1).ToString('MM-dd-yyyy')
    11-01-2013
    

    【讨论】:

    • 不客气。如果您的问题已经回答,请您标记一下吗?
    【解决方案2】:

    我认为这只是部分正确。更改格式似乎会将日期切换为字符串对象,然后该对象没有像 AddDays 这样的方法来操作它。因此,要完成这项工作,您必须将其切换回日期。例如:

    Get-Date (Get-Date).AddDays(-1) -format D
    

    【讨论】:

      【解决方案3】:

      这对我来说是最简单的解决方案:

      只是当前日期

      $tStamp = Get-Date -format yyyy_MM_dd_HHmmss
      

      当前日期加上一些月份

      $tStamp = Get-Date (get-date).AddMonths(6).Date -Format yyyyMMdd
      

      【讨论】:

        【解决方案4】:
            Windows PowerShell
            Copyright (C) 2014 Microsoft Corporation. All rights reserved.
        
            PS C:\Windows\system32> **$dte = Get-Date**
            PS C:\Windows\system32> **$PastDueDate = $dte.AddDays(-45).Date**
            PS C:\Windows\system32> **$PastDueDate**
        
            Sunday, March 1, 2020 12:00:00 AM
        
           PS C:\Windows\system32> **$NewDateFormat = Get-Date $PastDueDate -Format MMddyyyy**
           PS C:\Windows\system32> **$NewDateFormat 03012020**
        

        还有一些其他方法可用,例如:$dte.AddDays(-45).Day

        【讨论】:

        • -Format 参数只是ToString() 方法的包装。因此,您的答案与已接受的答案没有区别,只是您从所需的 1 天减去 45 天,并且不包括所需的破折号。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-01
        • 2021-08-01
        • 2017-04-16
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2018-04-02
        相关资源
        最近更新 更多