ruby - DateTime#strptime 返回无效日期错误
问题描述
我有一个从Daunt Books刮下来的字符串:
"Monday 2 December 6.30pm"
但我似乎无法将其转换为 DateTime DateTime#strptime
。日期部分似乎有效:
(byebug) DateTime.strptime(str,"%A %d %B")
#<DateTime: 2019-12-02T00:00:00+00:00 ((2458820j,0s,0n),+0s,2299161j)>
但时间返回错误:
(byebug) DateTime.strptime(str,"%A %d %B %l.%M%P")
*** ArgumentError Exception: invalid date
nil
我知道这是正确的#strptime
代码,因为如果它不是从网页上抓取的,它就可以在字符串上工作。我无法弄清楚我需要做什么才能使字符串有效#strptime
工作。
编辑:
不幸的是,我正在抓取的网站在 OP 之后的第二天重新设计,抓取代码现在已经失效。
解决方案
我无法复制问题:
require 'date'
str = "Monday 2 December 6.30pm"
DateTime.strptime(str,"%A %d %B %l.%M%P")
# => #<DateTime: 2019-12-02T18:30:00+00:00 ((2458820j,66600s,0n),+0s,2299161j)>
这对我有用:
require 'date'
foo = "Monday 2 December 6.30pm"
bar = DateTime.strptime(foo, '%a %d %B %l.%M%p')
bar.to_s
# => "2019-12-02T18:30:00+00:00"
和:
DateTime.strptime(foo, '%a %d %B %l.%M%p').strftime('%A %e %B %l:%M%p')
# => "Monday 2 December 6:30PM"
推荐阅读
- string - String 到 int 的转换问题(业余)
- java - 使用 jaxb 的嵌套 xml 解组
- node.js - 如何解决 ReferenceError: gapi is not defined 在 Next.js 应用程序中的问题?
- charts - ChartJS 多图表未正确显示图例
- python - 如何获取具有相同类的文章标签的p标签的第二个文本?
- php - Laravel 警告:输入中的意外字符:'\' (ASCII=92) 共享服务器
- powershell - 如何在 powershell 哈希表中添加 -confirm:$false?
- php - Facebook Conversion Api 报错“(#100) 需要参数数据”
- java - 使用 glide 显示多张图片
- python - 有没有办法使用 pgeocode 加快在大型数据帧上查询邮政编码的经纬度?