Ruby DateTime#strTime返回无效日期错误
我有一根绳子是从下面刮下来的: 但我似乎无法使用Ruby DateTime#strTime返回无效日期错误,ruby,string,datetime,strptime,Ruby,String,Datetime,Strptime,我有一根绳子是从下面刮下来的: 但我似乎无法使用DateTime\strtime将其转换为DateTime。日期部分似乎有效: (byebug) DateTime.strptime(str,"%A %d %B") #<DateTime: 2019-12-02T00:00:00+00:00 ((2458820j,0s,0n),+0s,2299161j)> 我知道这是正确的#strtime代码,因为如果没有从网页上刮取字符串,它可以在字符串上工作。我无法确定要使字符串有效以使#strt
DateTime\strtime
将其转换为DateTime。日期部分似乎有效:
(byebug) DateTime.strptime(str,"%A %d %B")
#<DateTime: 2019-12-02T00:00:00+00:00 ((2458820j,0s,0n),+0s,2299161j)>
我知道这是正确的#strtime
代码,因为如果没有从网页上刮取字符串,它可以在字符串上工作。我无法确定要使字符串有效以使#strtime
工作,我需要做什么
编辑:
不幸的是,我从中抓取的网站在操作后的第二天重新设计,并且抓取代码现在已解除。我无法复制该问题:
require 'date'
str = "Monday 2 December 6.30pm"
DateTime.strptime(str,"%A %d %B %l.%M%P")
# => #<DateTime: 2019-12-02T18:30:00+00:00 ((2458820j,66600s,0n),+0s,2299161j)>
以及:
请再测试一次。如果您仍然遇到异常,您使用的是哪个版本的Ruby?我无法复制该问题。“我知道这是正确的#strtime代码,因为如果它不是从网页上刮取的,它会在字符串上工作”–因此,显然该错误的原因不在您在此处发布的内容范围之内。请显示您的刮码或更好的,一个。而且似乎还有一些预处理:“12月2日星期一下午6点30分”(你的字符串)与“12月2日星期一下午6点30分”(网站上的日期,我的重点)请查看编辑过的OP——OP中提到的网站已更改,因此帖子现在已过时。无论如何,谢谢你。
(byebug) DateTime.strptime(str,"%A %d %B %l.%M%P")
*** ArgumentError Exception: invalid date
nil
require 'date'
str = "Monday 2 December 6.30pm"
DateTime.strptime(str,"%A %d %B %l.%M%P")
# => #<DateTime: 2019-12-02T18:30:00+00:00 ((2458820j,66600s,0n),+0s,2299161j)>
require 'date'
foo = "Monday 2 December 6.30pm"
bar = DateTime.strptime(foo, '%a %d %B %l.%M%p')
bar.to_s
# => "2019-12-02T18:30:00+00:00"
DateTime.strptime(foo, '%a %d %B %l.%M%p').strftime('%A %e %B %l:%M%p')
# => "Monday 2 December 6:30PM"