我有一个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
答案 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应该用于比较。