我得到一个带有时间戳值列表的文件,如下所示:
06/14/2018 1:00 1374 06/14/2018 2:00 1316 06/14/2018 3:00 1288
但是我需要通过向每行添加四个小时来更正时间戳。我一直在尝试这样的事情:
...
$c = Get-Content $file |
ForEach-Object { $_.[DateTime]$_.Substring(0, 15).AddHours(4) }
Set-Content $file -Value $c
但是我收到一个错误,即字符串不包含方法AddHours
。
答案 0 :(得分:3)
您的主要问题是operator precedence之一:
[datetime] $_.substring(0,15).addHours(4)
在应用$_.substring(0,15).addHours(4)
强制转换之前评估[datetime]
,因此在字符串实例上调用.addHours()
而不是[datetime]
1}}实例,导致你引用的错误。
使用(...)
建立所需的优先级:
([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小时。
答案 1 :(得分:0)
正如Bill所说,在尝试调用View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_answer, parent, false);
view.setOnClickListener(this);
view.setOnLongClickListener(this);
MyCustomHolderClass myCustomHolder = new MyCustomHolderClass(view);
return myCustomView;
方法之前,您需要转换为DateTime
。
AddHours
假设您不关心每一行的剩余四位数。
答案 2 :(得分:0)
顺便说一句,这就是我最后得到的。午夜读数有误,但最终结果正确。
$c = Get-Content $file | ForEach-Object{(([datetime] $_.substring(0,15)).addHours(4)).ToString('MM/dd/yyyy HH:mm') + $_.substring(15)}
$c = $c -replace":000",":00"
set-content $file -Value $c'