Ruby 验证日期-m/d/yyyy不';是否匹配mm/dd/yyyy?

Ruby 验证日期-m/d/yyyy不';是否匹配mm/dd/yyyy?,ruby,datetime,time,format,evaluate,Ruby,Datetime,Time,Format,Evaluate,我有一个ruby脚本来检查提供的日期,以确保它是今天的日期。如果提供的日期没有2位数的月份填充,则此选项不起作用。有没有办法让ruby看到这一点?例如,它说“2014年3月13日处理的日期不是今天的2014年3月13日!”区别在于月份-3和03。下面是代码。ev_val由csv提供,格式为m/d/yyyy。但是,它没有提供0填充。有什么想法吗 谢谢 tnow = Time.now if ev_val != tnow.strftime("%m/%d/%Y")

我有一个ruby脚本来检查提供的日期,以确保它是今天的日期。如果提供的日期没有2位数的月份填充,则此选项不起作用。有没有办法让ruby看到这一点?例如,它说“2014年3月13日处理的日期不是今天的2014年3月13日!”区别在于月份-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
需要“日期”

date\u val=date.parse ev\u val

今天

如果今天日期

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

结束

因为您只关心日期部分,所以我将使用日期而不是时间。 将输入字符串解析为日期对象,然后将其与今天的日期进行比较

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

在您的示例Date.parse(ev_val)!=Date.today应该适用于比较。

您正在进行字符串比较,因为字符串具有不同的格式,您将永远无法在天/月内获得相等值