如何确认以下字符串中的日期和时间格式正确,即年,月,日,然后是时间(4位数,2位数,2位数,然后是时间)
"Event (No 3) 0007141706 at 2010/04/27 11:48 ( Pacific )"
感谢
答案 0 :(得分:6)
为什么在Ruby可以为你处理解析时创建自己的正则表达式?
>> require 'date'
=> true
>> str = "Event (No 3) 0007141706 at 2010/04/27 11:48 ( Pacific )"
>> dt = DateTime.parse(str)
=> #<DateTime: 2010-04-27T11:48:00-08:00 (98212573/40,-1/3,2299161)>
这也确保日期有效,而不仅仅是以可识别的格式:
>> str = "Event (No 3) 0007141706 at 2010/13/32 25:61 ( Pacific )"
>> dt = DateTime.parse(str)
ArgumentError: invalid date
答案 1 :(得分:3)
/Event \(No \d+\) \d+ at (\d{4})\/(\d{2})\/(\d{2}) (\d\d):(\d\d) \([\w\s]+\)/
答案 2 :(得分:2)
if "Event (No 3) 0007141706 at 2010/04/27 11:48 ( Pacific )" =~ /\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}/
puts "Date and time found."
end
这将检查您的字符串是否包含指定格式的日期和时间。
但它只检查数字的数量,因此包含2010/13/99 93:71
的字符串同样有效。它不是。