gpt4 book ai didi

powershell - 在子字符串中向日期时间添加小时

转载 作者:行者123 更新时间:2023-12-03 01:04:50 26 4
gpt4 key购买 nike

我得到一个带有时间戳记值列表的文件,看起来像这样:

06/14/2018 1:00 137406/14/2018 2:00 131606/14/2018 3:00 1288

However I need to correct the time stamps by adding four hours to each row. I've been trying something like this:

...
$c = Get-Content $file |
ForEach-Object { $_.[DateTime]$_.Substring(0, 15).AddHours(4) }
Set-Content $file -Value $c

但是我得到一个错误,即字符串不包含方法 AddHours

最佳答案

您的主要问题是operator precedence之一:

 [datetime] $_.substring(0,15).addHours(4)

在应用 $_.substring(0,15).addHours(4)强制转换之前先评估 [datetime],因此 .addHours()是在字符串实例而不是 [datetime]实例上调用的,从而导致引用错误。

使用 (...)建立所需的优先级:
 ([datetime] $_.substring(0,15)).addHours(4)

日期算术工作后,您需要另外两部分:
  • 以与输入日期
  • 相同的方式格式化重新计算的日期
  • 将输入行的其余部分追加到重新计算的日期

  • $lines = Get-Content $file | ForEach-Object{ 
    (([datetime] $_.substring(0,15)).addHours(4)).ToString('MM/dd/yyyy h:mm') +
    $_.substring(15)
    }

    set-content $file -Value $lines

    注意:假设您使用的是15个字符的固定前缀。从每行只有一个小时的数字而没有AM / PM指标的行中,尚不清楚如何处理一天中的所有24小时。

    关于powershell - 在子字符串中向日期时间添加小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50882159/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com