【问题标题】:Odd Result Date/Time Format - Powershell奇数结果日期/时间格式 - Powershell
【发布时间】:2018-06-30 03:45:53
【问题描述】:

我将一个代表日期的字符串(即 20180625)传递给我的 Powershell 脚本。

然后我将使用名为 $currentDate 的字符串参数并将其格式化如下:

$date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)

但是,当我写出 $date 变量时,它显示为 6/29/2018 12:00:00 AM。

我这样做是因为我需要为我的脚本获取一年中的哪一天:

$dayofyear = ($date).dayofyear

哪个有效。我只是希望 $date 采用 yyyyMMdd 格式。只是好奇为什么会这样。

【问题讨论】:

    标签: powershell datetime-format


    【解决方案1】:

    ParseExact 的格式参数告诉解析器你给它的日期是什么格式。你得到的对象是一个 DateTime 对象而不是一个字符串。要获得所需格式的字符串,请使用 .ToString() 方法,然后给出您希望字符串采用的格式。

    举个例子:

    $currentDate = '20180629'
    $date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)
    $dayOfYear = $date.DayOfYear
    $date.ToString('yyyyMMdd')
    

    【讨论】:

      【解决方案2】:

      $date[datetime] 类型的对象,它包含ticks 中时间的精确度量。例如,1 天的时间跨度将是 864000000000 个刻度。因此,在较小的字段中不可能有$null 值(864 个滴答声只有几毫秒)。 $date 使用可以更改的默认格式打印到控制台。但是,由于直到 -Milliseconds 的每个字段都填充为 0,所以当该默认格式确实包含诸如 -hours 之类的字段时,它们将显示为最小值(在这种情况下,正好是上午 12 点)。

      【讨论】:

        猜你喜欢
        • 2013-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-24
        • 1970-01-01
        相关资源
        最近更新 更多