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

Ruby strptime错误
EN

Stack Overflow用户
提问于 2012-12-05 05:48:04
回答 3查看 2.5K关注 0票数 1

很奇怪..。有人能告诉我这里出了什么问题吗?这是strptime的bug吗?

代码语言:javascript
复制
1.9.3p194 :079 > format = "%m/%-d/%Y %-I:%M:%S %p"
 => "%m/%-d/%Y %-I:%M:%S %p" 
1.9.3p194 :080 > now = Time.now.strftime(format)
 => "12/4/2012 1:44:45 PM" 
1.9.3p194 :081 > Time.strptime(now, format)
ArgumentError: invalid strptime format - `%m/%-d/%Y %-I:%M:%S %p'
    from /Users/fedenusy/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/time.rb:283:in `strptime'
from (irb):81
from /Users/fedenusy/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.9/lib/rails/commands/console.rb:47:in `start'
from /Users/fedenusy/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.9/lib/rails/commands/console.rb:8:in `start'
from /Users/fedenusy/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.9/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

编辑:为了澄清,我正在尝试使用这种特定格式的日期,例如"12/4/2012 1:44:45 PM“。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 09:22:19

strptime中不支持用于抑制strftime中填充的减号(-)标志。

如果跟踪Rails中的Date#strptime或Time#strptime调用,就会发现最终会进入strptime的Ruby源代码。您将看到,在处理'-‘字符的解析器中没有大小写。您可以将其与strftime的实现进行比较,后者确实存在这种情况。

因此,您不能使用格式字符串进行解析。您需要删除减号才能使其有效。

票数 3
EN

Stack Overflow用户

发布于 2012-12-05 05:53:39

尝试此格式

代码语言:javascript
复制
format = "%m/%d/%Y %I:%M:%S %p"

要获得以下信息:

代码语言:javascript
复制
=> `"12/04/2012 02:52:58 PM"` 
票数 1
EN

Stack Overflow用户

发布于 2012-12-05 05:59:44

Date或DateTime提供strptime方法;Time提供strftime方法。对吗?

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

https://stackoverflow.com/questions/13712525

复制
相关文章

相似问题

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