是否可以在PowerShell中只检索日期时间对象的日期部分?原因是我需要将文件的LastWriteTime
属性与今天的日期进行比较,以确定是否备份文件。原样日期时间对象还包括时间,当我执行以下操作时,时间总是计算为false:
if ($fileDate -eq $currentDate) {
# Do backup
}
我还没有找到这样的方法,如果我们使用格式操作符或者方法,它会把对象转换成字符串对象,如果你试图把它转换回datetime对象,它会把时间追加到对象上,可能很简单,但是我已经看了这个脚本一段时间了,这是最后一个部分。
4条答案
按热度按时间jexiocij1#
假设$fileDate不是一个dateTime对象,那么您只需将两者都转换为字符串并设置其格式。
mjqavswn2#
**EDIT:**正如@jessehouwing在下面的评论中指出的,我的答案不必要地复杂,只需使用
$datetime.Date
。获取不带任何时间组件的DateTime的几种方法(即设置为所讨论日期开始时的午夜,00:00:00):
或
我在一个循环中运行每个版本,迭代10万次。第一个版本花了16.4秒,第二个版本花了26.5秒。所以我会选择第一个版本,尽管它看起来有点复杂。
基于以下答案:https://techibee.com/powershell/powershell-how-to-query-date-time-without-seconds/2737(那篇文章是关于从DateTime中剥离秒的,但是它可以扩展到剥离小时、分钟和秒)。
s4n0splo3#
这不会回答如何删除datetime上的时间,但会完成识别何时备份的验证目的。
我确实建议减去你的两个给定的日期值,并比较结果,如果总小时数已经满足做你的备份。
您还可以验证以下内容
umuewwlo4#
假设
$currentTime
包含一个DateTime对象,您可以检索一个新的DateTime对象,该对象具有相同的日期,但时间部分为零,如下所示: