我的文件字符串在标题中包含日期,例如 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"
最佳答案
您的问题是 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
.
关于ruby - 从带有空格分隔符的字符串中解析小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43284044/