Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby DateTime#strTime返回无效日期错误_Ruby_String_Datetime_Strptime - Fatal编程技术网

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"