ruby-on-rails – Ruby检查datetime是否为iso8601并保存
我需要检查DateTime是否采用有效的ISO8601格式.
喜欢:#iso8601? 我检查了ruby是否有特定的方法,但我没有找到任何方法. 编辑 解释我的环境,并改变问题的范围. 所以,我的项目将使用js api FullCalendar,这就是我需要iso8601字符串格式的原因.我想知道它是更好或更正确的方式,以正确的格式保存数据库中的日期,或让ActiveRecord完成他们的工作并在我需要时间信息时操作它. 解决方法
我不太明白你的问题.我假设你想检查一个DateTime字符串,如果它是一个有效的ISO8601格式日期字符串.如果我错了,请纠正我.
您可以使用类方法Time.iso8601和Date.iso8601.要使用它们,您需要从标准库中要求“日期”和“时间”库.一个警告是,从名称中可以看出,它们不是谓词方法(没有?),而是如果输入了错误的字符串,它们会引发带有“无效日期”消息的ArgumentError.因此,您需要添加一个开始救援块.例如. require 'time' t = Time.now time_string = t.rfc2822 # intentionally set to wrong format string begin Time.iso8601(time_string) puts "Yeah,correct string" rescue ArgumentError => e puts e puts "Nah,wrong string" end 这比你的“date.iso8601 == date”更冗长.但我发布它是因为不明白你的方法是如何工作的.对我来说date.iso8601 == date总是假的.我错了吗? UPDATE 作为更新问题的答案,最好只能将DateTime存储在数据库中,并调用iso8601方法获取ISO8601字符串.要创建DateTime,只需使用Time.iso8601将输入字符串解析为DateTime对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |