在Ruby中比较两个文件日期的最佳方法是什么?
我正在构建.pkg文件 每个构建都附带一个log.txt文件,该文件的创建时间比相应的.pkg文件晚约2秒 我现在必须编写一个脚本来自动在相关文件夹中发布版本/beta版 Beta版本将移动到Beta_build文件夹,发布版本将移动到Release_build文件夹 日志文件中指示了版本类型(beta版或发行版) 在执行这些操作(将.pkg文件移动到正确的文件夹中,重命名.pkg文件等)之前,我需要找到最新的pkg文件(最后一个已生成的文件),并确保找到相应的log.txt文件(可能是最后一个已创建的文件)在Ruby中比较两个文件日期的最佳方法是什么?,ruby,file,date,Ruby,File,Date,我正在构建.pkg文件 每个构建都附带一个log.txt文件,该文件的创建时间比相应的.pkg文件晚约2秒 我现在必须编写一个脚本来自动在相关文件夹中发布版本/beta版 Beta版本将移动到Beta_build文件夹,发布版本将移动到Release_build文件夹 日志文件中指示了版本类型(beta版或发行版) 在执行这些操作(将.pkg文件移动到正确的文件夹中,重命名.pkg文件等)之前,我需要找到最新的pkg文件(最后一个已生成的文件),并确保找到相应的log.txt文件(可能是最后一个
输出: 最新的pkg文件是/是: → build.pkg → 2021-03-05 07:12:54+0100 最近的日志文件是: → log.txt → 2021-03-05 07:12:56+0100 我已经可以使用它了,并且可以合理地确认最新的log.txt文件必须与最新的build.pkg文件相对应 但出于某些原因,我必须添加第二级验证 这就是为什么我想比较这两个日期/字符串,以确保它们的值“足够接近”。让我们假设2分钟结束
以下是更详细的问题: 2021-03-05 07:12:54+0100(pkg)不等于2021-03-05 07:12:56+0100(log) 让我们看一个更微妙的情况;我们现在大约在午夜建造: 2021-03-05 23:59:59+0100(pkg)与2021-03-06 00:00:01+0100(log)非常不相等
这就是障碍: 我需要一种方法来比较这两个日期,允许一定的基于时间的差异(比如说2分钟),并且我不能使用额外方便的Ruby库(它必须在默认的macOS系统、最新的OS版本中是可执行的) 如果两个日期足够接近(最多相差2分钟),则比较结果将返回true 如果文件日期相差超过2分钟,则比较将返回false 有什么想法吗
提前感谢。
mtime
为您提供时间,而不是字符串。
可以“减去”时间对象,以秒为单位。如果a和b都是文件,则可以执行以下操作
(b.mtime - a.mtime).between?(0, 120)
如果b比a早2分钟,则返回false。
mtime
为您提供时间,而不是字符串。
可以“减去”时间对象,以秒为单位。如果a和b都是文件,则可以执行以下操作
(b.mtime - a.mtime).between?(0, 120)
如果b比a早2分钟,则返回false。pkgtime\u logtime\u match=(File.mtime(most\u recent\u log\u File)-File.mtime(most\u recent\u pkg\u files)).between?(0,120)将pkgtime\u logtime\u match=>true非常有效。谢谢输入错误警报:“五个”->“给出”.pkgtime\u logtime\u match=(File.mtime(最新的日志文件)-File.mtime(最新的日志文件))。介于?(0,120)之间将pkgtime\u logtime\u match=>设置为true效果最佳。谢谢输入错误警报:“五个”->“给”。