我的文件字符串在其标题中包含日期,例如2017-03-06 092328 - iPhone - Music Show - street performance, while walking the dog.m4a
我想解析这个字符串的日期,因为我需要以播客友好的格式打印它。
我能够解析出日期,但由于某种原因,时间组件拒绝被解析出来:)
Date.strptime("2017-03-06 092328", "%Y-%m-%d %H%M%S").strftime(%Y-%m-%d %H%M%S)
预期产出:
"2017-03-06 092328"
实际输出
"2017-03-06 000000"
答案 0 :(得分:3)
你的问题是Date
是一个令人惊讶的事情!这是一个日期,如在,"不是时间,只是一个日期"。
require 'time'
Time.strptime("2017-03-06 092328", "%Y-%m-%d %H%M%S").strftime("%Y-%m-%d %H:%M:%S")
#=> "2017-03-06 09:23:28"
公平地说:
Time#strptime
的文档提及它基于Date#strptime
Date._parse("2017-03-06 09:23:28")
将很高兴地返回{:hour=>9, :min=>23, :sec=>28, :year=>2017, :mon=>3, :mday=>6}
如果您发现Time
对象有日期和时间但Date
只有一个日期令人困惑,您可以使用DateTime
。