时间与日期类
处理时间
时间与日期类 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。
Time 类
Ruby 内置的 Time 类表示一个时间点。Time.now 会提供包含日期和时钟时间的当前时间。
t = Time.now
puts t.class
puts(t.year)构建特定时间
Time.new(或 Time.local)根据各个部分构建时间:年、月、日、小时、分钟和秒。
t = Time.new(2026, 5, 30, 14, 30, 0)
puts t.year
puts t.hour
puts t.min读取时间组成部分
Time 通过 year、month、day、hour、min、sec 和 wday 等方法提供每个组成部分(星期几,0 = 星期日)。
t = Time.new(2026, 5, 30)
puts(t.month)
puts(t.day)
puts(t.wday)纪元秒数
在内部,Time 表示自Unix 纪元(1970 年 1 月 1 日 UTC)以来经过的秒数。使用 to_i 获取秒数,并使用 Time.at 转换回来。
secs = Time.new(2026, 1, 1, 0, 0, 0, '+00:00').to_i
puts secs
puts(Time.at(secs).utc.year)Date 类
如果要进行不涉及时钟时间的日历操作,请引入 date 库并使用 Date 类。
require 'date'
d = Date.new(2026, 5, 30)
puts d.class
puts(d.to_s)今天与现在
Date.today 提供当前日历日期。DateTime.now 还会包含当天的时间。
require 'date'
puts(Date.today.class)
puts(DateTime.now.class)星期几
Date 提供了易于理解的谓词和工作日名称。
require 'date'
d = Date.new(2026, 5, 30)
puts(d.saturday?)
puts(d.wday)Date、Time 与 DateTime 的区别
请选择合适的类:
Date仅表示日历日期,不包含时钟时间Time表示带时区的精确时刻,速度较快DateTime表示日期和时间,是日期库的一部分
现代 Ruby 代码通常优先使用 Time。
require 'date'
puts(Date.new(2026, 5, 30))
puts(Time.new(2026, 5, 30, 9, 0).hour)闰年
Date.leap? 会告诉您某一年是否为闰年,而闰年会影响二月的天数。
require 'date'
puts(Date.leap?(2024))
puts(Date.leap?(2026))UTC 与本地时间
Time 可以处于本地时区或 UTC。utc 会将其转换为 UTC,localtime 会将其转换回本地时间。utc? 会检查当前模式。
t = Time.new(2026, 5, 30, 12, 0, 0, '+03:00')
puts(t.utc.hour)
puts(t.utc?)比较 Time
Time 和 Date 对象可以使用 <、> 和 == 进行比较,因此您可以直接对它们排序或检查顺序。
a = Time.new(2026, 1, 1)
b = Time.new(2026, 6, 1)
puts(a < b)
puts([b, a].min.month)快速检查
哪个类表示不包含当天时间的日历日期?
回顾:Time 和 Date 类
您已经学习了核心日期和时间类型:
- 使用
Time.now/Time.new表示时刻 - 组成部分:年、月、日、小时、分钟、秒、星期几
- 通过
to_i和Time.at获取纪元秒数 - 使用日期库中的
Date/DateTime - UTC 与本地时间、比较以及闰年
require 'date'
puts(Date.today.year)常见问题解答
「时间与日期类」课时是免费的吗?
是的 — 「时间与日期类」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。
「时间与日期类」这节课中我会学到什么?
处理时间 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ruby Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「时间与日期类」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ruby Academy 课中编写并运行代码吗?
能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。