验证日期 - m / d / yyyy与mm / dd / yyyy不匹配?

时间:2014-03-13 16:50:19

标签: ruby datetime time format evaluate

我有一个ruby脚本,用于检查提供的日期,以确保它是今天的日期。当提供的日期本月没有2位数填充时,这不起作用。反正有没有让红宝石看到它是平等的?例如,它说“2014年3月13日处理的日期不是今天的日期03/13/2014!”不同的是月份 - 3对03.下面是代码。 ev_val是从csv提供的,它是m / d / yyyy格式。但是它没有提供0填充。有什么想法吗?

谢谢!

tnow = Time.now
        if ev_val != tnow.strftime("%m/%d/%Y")
            log_linemsg = "Date Processed #{ev_val} is not today's date #{tnow.strftime("%m/%d/%Y")}! Processing date must be today's Date!!!\nSTOPPING SCRIPT!!!"
            log_line = ["#{$cname}","#{log_linemsg}","","",]
            puts log_linemsg
            insert_logitems(connection, table_namelog, log_line)
            exit
        end

2 个答案:

答案 0 :(得分:0)

要求"日期"

date_val = Date.parse ev_val

今天= Date.today

如果今天!= date_val

log_linemsg = "Date Processed #{ev_val} is not today's date #{today}! Processing date must be today's Date!!!\nSTOPPING SCRIPT!!!"

答案 1 :(得分:0)

由于你只关心日期部分,我会使用Date而不是Time。 获取输入字符串并将其解析为Date对象,然后将其与今天的日期进行比较。

?> date_val = Date.parse('3/13/2014')
=> Thu, 13 Mar 2014
>> date_val == Date.today
=> true

在你的例子中,Date.parse(ev_val)!= Date.today应该用于比较。