0Pricing
Ruby Academy · 课时

解析与格式化

strftime 与 strptime

解析与格式化 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。

使用 strftime 设置格式

strftime 使用以 % 开头的格式指令,将 Time 或 Date 转换为格式化字符串。

t = Time.new(2026, 5, 30, 14, 5, 9)
puts(t.strftime('%Y-%m-%d'))
puts(t.strftime('%H:%M:%S'))

常用日期指令

有用的日期指令:

  • %Y 表示 4 位数年份,%y 表示 2 位数年份
  • %m 表示月份数字,%B 表示完整月份名称
  • %d 表示月份中的日期,%j 表示年份中的第几天
t = Time.new(2026, 5, 30)
puts(t.strftime('%B %d, %Y'))
puts(t.strftime('%y/%m/%d'))

常用时间指令

有用的时钟指令:

  • %H 表示 24 小时制,%I 表示 12 小时制
  • %M 表示分钟,%S 表示秒
  • %p 表示 AM/PM
t = Time.new(2026, 5, 30, 14, 30)
puts(t.strftime('%I:%M %p'))
puts(t.strftime('%H:%M'))

星期与名称

%A 表示完整的星期名称,%a 表示缩写。%b 表示缩写的月份名称。

t = Time.new(2026, 5, 30)
puts(t.strftime('%A'))
puts(t.strftime('%a %b %d'))

填充与标志

在 % 与指令之间插入标志:- 移除填充,0 使用零填充,_ 使用空格填充。

t = Time.new(2026, 5, 5, 9, 0)
puts(t.strftime('%-d/%-m'))
puts(t.strftime('%H:%M'))

ISO 8601 输出

如需生成可互操作的时间戳,请使用 iso8601 或 %FT%T%z 模式。ISO 8601 是应用程序接口使用的标准。

require 'time'
t = Time.new(2026, 5, 30, 14, 0, 0, '+00:00')
puts(t.utc.iso8601)

使用 Date.parse 解析

Date.parse 可以读取许多常见的日期字符串格式,并推测其布局。使用方便,但比较宽松。

require 'date'
puts(Date.parse('2026-05-30'))
puts(Date.parse('30 May 2026'))

使用 Time.parse 解析

请引入 time,以添加 Time.parse;它可以读取包含时钟时间的完整时间戳。

require 'time'
t = Time.parse('2026-05-30 14:30:00')
puts(t.hour)
puts(t.min)

使用 strptime 严格解析

如果您知道确切的格式,请使用 strptime。它使用与 strftime 相同的指令,并会在输入不匹配时失败,因此更加安全。

require 'date'
d = Date.strptime('30/05/2026', '%d/%m/%Y')
puts(d.year)
puts(d.month)

对 Time 使用 strptime

Time.strptime 会根据已知格式将时间戳解析为 Time。

require 'time'
t = Time.strptime('2026-05-30 14:05', '%Y-%m-%d %H:%M')
puts(t.hour)
puts(t.min)

parse 与 strptime

经验法则:

  • 对用户灵活输入的文本使用 parse
  • 格式固定且希望拒绝其他内容时使用 strptime
require 'date'
puts(Date.parse('May 30 2026').iso8601)
puts(Date.strptime('2026-05-30', '%Y-%m-%d').iso8601)

快速检查

在 strftime 中,哪个指令会生成使用零填充的 24 小时制数值?

回顾:解析与格式化

您可以双向转换字符串与日期:

  • strftime 使用 % 指令设置格式
  • %Y %m %d %H %M %S %A %B 以及各种标志
  • parse 比较灵活,strptime 比较严格
  • 使用 iso8601 生成适合应用程序接口的输出
require 'date'
puts(Date.strptime('2026-05-30', '%Y-%m-%d').strftime('%A, %B %-d'))

常见问题解答

「解析与格式化」课时是免费的吗?

是的 — 「解析与格式化」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。

「解析与格式化」这节课中我会学到什么?

strftime 与 strptime 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ruby Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「解析与格式化」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ruby Academy 课中编写并运行代码吗?

能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 时间与日期类
  2. 解析与格式化
  3. 时间运算
  4. 时区
← 返回 Ruby Academy