使用 space 分隔符从字符串中解析小时数

Parse hours from string with space delimiter

我的文件字符串在标题中包含日期,例如 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 是(多么令人惊讶!)一个日期,如 "Not a time, just a 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 mentions that it's based on Date#strptime
  • 的文档
  • Date._parse("2017-03-06 09:23:28")会幸福return{:hour=>9, :min=>23, :sec=>28, :year=>2017, :mon=>3, :mday=>6}

如果您觉得 Time 对象有日期和时间而 Date 只有日期令人困惑,您可以使用 DateTime.