格式化日期以便能够减去它们Powershell

时间:2017-05-01 08:49:40

标签: powershell

我有一个存储在从.csv文件填充的数组中的两个对象,我试图找到一个可以从另一个中减去一个的点。

TEST1 System.String TEST1=20170408
Last Use NoteProperty System.String Last Use=2017-04-18 17:46:42

如何将最后一次使用格式化为与测试1相同的格式,同时还可以相互减去?

我试过以下

$dt_last_use =$_."Last Use".Split(' ') |Select -First 1

但我从中得到了这个输出

2016-12-29

我的最终目标是能够做到这样的事情

                    #$dt_last_use =$_."Last Use".Split(' ') |Select -First 1
                    #$today = get-date

                    #$diff = ( $today -$dt_last_use)

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

根据评论,您可以将其作为[datetime]对象强制转换为最后使用日期。对于Test1日期,您需要使用ParseExact方法,该方法允许您定义datetime format based on certain tokens以匹配文本字符串中的格式:

$LastUse = "2017-04-18 17:46:42"
$dt_last_use = [datetime]$datestring

$Test1 = '20170408'
$dt_test1 = [DateTime]::ParseExact($Test1,"yyyyMMdd", $null)

$today = (get-date)

$difflastuse = $today - $dt_last_use
$difftest1 = $today - $dt_test1

显然,根据您的情况调整$LastUse$Test1变量为$_."last use"$_.test1,以上只是一个完整/可验证的示例。