Ruby Date.strptime 解析时遇到困难 13/Nov/11

发布于 2024-12-15 14:53:45 字数 760 浏览 2 评论 0原文

当解析包含日期(例如 13/Nov/11)的 Jira 自定义字段时,我是这样开始的:

elsif custom.customfieldId == "customfield_10282"
@agenda_item.planned_release_date      =  custom.values.to_s

但是数据库将其存储为 11/13/0011。所以我很聪明并使用了这个:

elsif custom.customfieldId == "customfield_10282"
@agenda_item.planned_release_date      =  Date.strptime(custom.values, "%d/%m/%Y")

现在我得到:

private method sub!'呼吁 ["15/Nov/11"]:Jira4R::V2::ArrayOf_xsd_string C:/Ruby187/lib/ruby/1.8/date/format.rb:429:in_strptime_i' C:/Ruby187/lib/ruby/1.8/date/format.rb:401:in 扫描' C:/Ruby187/lib/ruby/1.8/date/format.rb:401:in_strptime_i' C:/Ruby187/lib/ruby/1.8/date/format.rb:601:in `_strptime' [截断堆栈的其余部分]

我错过了什么?

When parsing a Jira Custom Field containing a date (e.g. 13/Nov/11) I started with this:

elsif custom.customfieldId == "customfield_10282"
@agenda_item.planned_release_date      =  custom.values.to_s

But the database stores it as 11/13/0011. So I got clever and used this:

elsif custom.customfieldId == "customfield_10282"
@agenda_item.planned_release_date      =  Date.strptime(custom.values, "%d/%m/%Y")

And now I get:

private method sub!' called for ["15/Nov/11"]:Jira4R::V2::ArrayOf_xsd_string
C:/Ruby187/lib/ruby/1.8/date/format.rb:429:in
_strptime_i'
C:/Ruby187/lib/ruby/1.8/date/format.rb:401:in scan'
C:/Ruby187/lib/ruby/1.8/date/format.rb:401:in
_strptime_i'
C:/Ruby187/lib/ruby/1.8/date/format.rb:601:in `_strptime'
[truncated the rest of the stack]

What am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叶落知秋 2024-12-22 14:53:45

这有效:

p Date.strptime('13/Nov/11', "%d/%b/%y")

您的问题:

  • `%Y 是 4 位数字的年份 (2011)。使用 %y
  • %m 表示月份的数字 (11)。使用 %b 代替(11 月

This works:

p Date.strptime('13/Nov/11', "%d/%b/%y")

Your problems:

  • `%Y is the year with 4 digits (2011). Use %y
  • %m is the month in digits (11). Use %b instead (Nov)
两仪 2024-12-22 14:53:45

如果我正确理解您的问题,请尝试使用此:

Date.strptime('13/Nov/11', "%d/%b/%y")  # => 2011-11-13

您有缩写的月份名称,您应该使用 b 格式指令。除此之外,由于您的年份仅包含最后两个数字,因此请使用 y 指令。

If I properly understand your issue, try to use this:

Date.strptime('13/Nov/11', "%d/%b/%y")  # => 2011-11-13

You have abbreviated month name and there for you should use b format directive. Beside this because your year contains only two last numbers, use y directive.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文