ruby - 从带有空格分隔符的字符串中解析小时数

标签 ruby datetime date-parsing

我的文件字符串在标题中包含日期,例如 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/

相关文章:

python - 如何将字符串转换为日期时间?

ruby - 将 Sinatra 设置为在子目录中运行

ruby - 安装了两个版本的 Ruby。删除了旧的并以某种方式卡住了

javascript - 按小时和分钟创建日期对象

java - 使用 Java-8 LocaldateTime 比较 future 三天的日期和时间

java - Joda 时区与地区/城市解析

ruby - 无法使用 selenium hub docker 和 ruby​​ watir 更改 chrome 的默认下载目录

ruby-on-rails - 修复 "ruby installation is missing psych"错误?

c# - 在 C# 中使用 datetime.ParseExact 给出 System.FormatException : String was not recognized as a valid DateTime.

java - 解析日期时间字符串中日期的序号指示符 (st, nd, rd, th)