我需要将数组data2转换为DateTime。字符串数据起作用。有人知道为什么我在使用Array.to_s时会出现以下错误吗?
require 'date'
data = "May 3 07:02:34"
puts DateTime.strptime(data, '%b %d %H:%M:%S')<br>
puts data<br>
puts data.class
data2 = ["May 3 07:02:34"]
puts data2
puts data2.class
puts DateTime.strptime(data2.to_s, '%b %d %H:%M:%S')输出:
2016-05-03T07:02:34+00:00
May 3 07:02:34
String
May 3 07:02:34
Array
hello.rb:13:in `strptime': invalid date (ArgumentError)
from hello.rb:13:in `<main>'发布于 2016-05-16 01:27:06
您正在将数组转换为字符串,但实际上只想在第一个元素中引用该字符串。将调用改为strptime如下:
puts DateTime.strptime(data2[0], '%b %d %H:%M:%S')这应该可以用strptime来解决问题。
使用Array#to_s将整个数组呈现为字符串。在这种情况下,结果是:
"[\"May 3 07:02:34\"]"您想要的(以及索引0)是这样的:
"May 3 07:02:34"区别是很重要的,这也是为什么工作时间被它阻塞的原因。我希望这能帮上忙。
https://stackoverflow.com/questions/37245428
复制相似问题