首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateTime.strptime错误

DateTime.strptime错误
EN

Stack Overflow用户
提问于 2016-05-16 01:19:00
回答 1查看 152关注 0票数 0

我需要将数组data2转换为DateTime。字符串数据起作用。有人知道为什么我在使用Array.to_s时会出现以下错误吗?

代码语言:javascript
复制
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')

输出:

代码语言:javascript
复制
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>'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-16 01:27:06

您正在将数组转换为字符串,但实际上只想在第一个元素中引用该字符串。将调用改为strptime如下:

代码语言:javascript
复制
puts DateTime.strptime(data2[0], '%b %d %H:%M:%S')

这应该可以用strptime来解决问题。

使用Array#to_s将整个数组呈现为字符串。在这种情况下,结果是:

代码语言:javascript
复制
"[\"May 3 07:02:34\"]"

您想要的(以及索引0)是这样的:

代码语言:javascript
复制
"May 3 07:02:34"

区别是很重要的,这也是为什么工作时间被它阻塞的原因。我希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37245428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档