【发布时间】:2011-03-02 18:29:34
【问题描述】:
这不是什么大问题,真的,完全是出于好奇。
对于我正在开发的程序,我会在特定时间(目前每天一次,可能会更改)将信息写入文件,但这样做的方式是,每条记录信息的时间都很重要。因此,每次我想采集样本并将信息附加到文件时,我首先附加以下内容:
file_out.write Time.now
作为一种简单的方法来准确记住每次写入的时间。
现在我很好奇:有没有办法检查从文件中接收到的字符串(例如“cur_line = file_in.gets”)是否是时间戳?
这不是问题的原因是我当前的方法是简单的正则表达式:
if cur_line =~(/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/)
而且似乎非常适合我的需要。 (由于项目的性质和我所写内容的格式,我知道文件中不会有其他行包含格式为“{Day} {Month}”的任何文本,所以我停止在那里解析。只是一天或一个月是不够的,会导致误报)。
还有其他可能更漂亮的方法来检查时间戳吗?我不一定会使用其他东西(特别是如果你说“你可以做 X,但它会导致性能受到很大影响”(在这个项目中,比较不是性能的一个重要问题。我猜想差异可能可以忽略不计))。
这只是一件让我觉得很有趣的事情,而且我猜想在 Ruby 中可能会有一些很酷的方法。 :)
【问题讨论】: