首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rubygems Chronic无法解析"2010-09-12 3:12 3pm“,但可以解析"2010-09-12 3 3pm”或“上周一3:12 3pm”吗?

Rubygems Chronic无法解析"2010-09-12 3:12 3pm“,但可以解析"2010-09-12 3 3pm”或“上周一3:12 3pm”吗?
EN

Stack Overflow用户
提问于 2010-09-13 15:16:16
回答 1查看 162关注 0票数 1

似乎很奇怪,"2010--9-12 3:12 It“是慢性Rubygem的一个弱点?有没有办法让它工作呢?(或者其他可以做到这一点的gem?)我还希望找到一个能够处理2010-09-12 3:12pm UTC或其他时区的解析器,比如PDTPSTUTC+8-0700

代码语言:javascript
复制
irb(main):001:0> RUBY_VERSION
=> "1.8.7"

irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'chronic'
=> true

irb(main):004:0> Chronic.parse('9/12/2010')
=> Sun Sep 12 12:00:00 -0700 2010

irb(main):005:0> Chronic.parse('9/12/2010 3pm')
=> Sun Sep 12 15:00:00 -0700 2010

irb(main):006:0> Chronic.parse('9/12/2010 3:12pm')    # <-- cannot work
=> nil

irb(main):007:0> Chronic.parse('last monday 3:12pm')
=> Mon Sep 06 15:12:00 -0700 2010

irb(main):008:0> Chronic.parse('2010-09-12')
=> Sun Sep 12 12:00:00 -0700 2010

irb(main):009:0> Chronic.parse('2010-09-12 3:12pm')   # <-- cannot work
=> nil
EN

回答 1

Stack Overflow用户

发布于 2010-09-13 17:18:01

它适用于我在Ruby1.8.7 (2009-06-12 patchlevel 174)上使用Github上的最新Chronic

代码语言:javascript
复制
>> RUBY_VERSION
=> "1.8.7"

>> require './chronic/lib/chronic'
=> true

>> Chronic.parse('9/12/2010 3:12pm')
=> Sun Sep 12 15:12:00 +0100 2010

>> Chronic.parse('2010-09-12 3:12pm')
=> Sun Sep 12 15:12:00 +0100 2010

在测试套件中,有以下测试:

代码语言:javascript
复制
time = parse_now("2006-08-20 7pm")
assert_equal Time.local(2006, 8, 20, 19), time

time = parse_now("2006-08-20 03:00")
assert_equal Time.local(2006, 8, 20, 3), time

但与您的问题日期不完全匹配。因此,如果你发现了一个bug,那么告诉Chronic的作者可能是值得的,这样他就可以更新测试。

顺便说一句。当你尝试的时候你会得到什么:

代码语言:javascript
复制
require 'time'

puts Time.parse('2010-09-12 3:12pm')

因为我得到了正确的答案:Sun Sep 12 15:12:00 +0100 2010 (NB.我在这里使用日光节约时间)。我提到这一点是因为我今天早上看到了一条关于time API in a minor point release问题的模棱两可的推文。

/I3az/

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

https://stackoverflow.com/questions/3698444

复制
相关文章

相似问题

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