日期时间比较不匹配

时间:2015-08-04 06:35:45

标签: powershell datetime

我想比较一下我从xml文件获得的日期和#34; lastwritetime"一个文件。 Powershell ISE对两者都显示相同,但​​我的if不会返回true。我尝试了一些日期时间演员阵容,但这也没有帮助。

我的XML:

<meta>
    <log path="D:\tomcat.log">
        <lastwrite>08/03/2015 13:44:09</lastwrite>
    </log>
</meta>

我的powershell脚本:

[xml]$log_meta = Get-Content "D:\log_meta.xml"
$node = $log_meta.meta.log | where {$_.path -eq "D:\tomcat.log"}

(ls "D:\tomcat.log").LastWriteTime
$node.lastwrite

if((ls "D:\tomcat.log").LastWriteTime -eq $node.lastwrite){
    "Date and time is the same"
}

第三行显示:(德国日期格式)

Montag, 3. August 2015 13:44:09

第四行显示:

08/03/2015 13:44:09

但我的if不会返回true。

2 个答案:

答案 0 :(得分:2)

$ node.lastwrite是一个字符串(您从文件中读取它),而LastWriteTime是DateTime。您需要将它们转换为日期,或两者都转换为DateTime。

如果将两者都转换为DateTime,则需要将文件时间舍入到最接近的秒。在NTFS上,文件时间精度为100纳秒。

将文件时间转换为相同格式的字符串可能更好。

$writeTimeString = (ls "D:\tomcat.log").LastWriteTime.ToString("MM/dd/yy HH:mm:ss")

答案 1 :(得分:0)

好的,它现在正在工作。我把两个都换成了字符串。

[XPST0003] Unexpected end of query: 'insert attribut...'.

我希望我可以使用约会时间,但也许这是不可能的。谢谢!