Ruby 日期 & 时间(Date & Time)


Ruby 日期 & 时间

Ruby 提供了许多有用的日期和时间操作的方法。Ruby 的 Date 类,用于处理日期。Ruby 的 Time 类,用于处理时间。时间和日期都是非常重要的变量,在从数据库中查询数据或以任何方式处理或操作数据,甚至在测试代码时,时间都是非常重要的。

日期处理

Ruby 支持一系列操作日期的方法和模块。Date 类是其中的一个最基础的类。

创建日期

我们可以使用 Date 类来创建日期。以下是一个示例:

require 'date'

newYear = Date.new(2020, 1, 1)

访问日期

访问 Date 类的日期的最常用方法是使用 strftime 方法。例如:

puts newYear.strftime("%m/%d/%Y") # 01/01/2020

比较日期

可以使用 Ruby 的 Date 类来比较两个日期:

require 'date'

d1 = Date.new(2020, 1, 1)
d2 = Date.new(2020, 2, 1)

if d1 < d2
	puts "d1 is less than d2"
end

计算日期

我们可以使用 Date 类来计算两个日期之间的天数差异:

require 'date'

d1 = Date.new(2020, 1, 1)
d2 = Date.new(2020, 2, 1)

daysBetween = (d2 - d1).to_i

解析日期

在 Ruby 中常用的日期格式可以通过 strptime 方法解析成日期对象:

require 'date'

string_date = '2020-01-01'

parsed_date = Date.strptime(string_date, '%Y-%m-%d')

批量处理日期

Ruby 还提供了一些批量处理日期的方法,比如列出指定日期区间内所有的日期:

require 'date'

start_date = Date.new(2020, 1, 1)
end_date = Date.new(2020, 1, 10)

(start_date..end_date).each do |date|
	puts date.strftime('%B %d, %Y')
end

时间处理

在 Ruby 中,可以使用 Time 类来处理时间。

获取当前时间

我们可以使用 Time.now 方法来获取当前的时间:

currTime = Time.now
puts currTime

时间戳

在计算机科学中,时间戳是从 1970 年 1 月 1 日开始的秒数。我们可以使用 Ruby 的 Time 类来获取时间戳:

puts Time.now.to_i # 当前时间的时间戳

访问时间

我们可以使用 strftime 方法来格式化时间:

puts Time.now.strftime('%B %d, %Y %H:%M:%S') # January 01, 2020 12:01:01

解析时间

我们可以使用 strptime 方法将时间字符串解析成时间对象:

require 'time'

string_time = '12:01:01'

parsed_time = Time.parse(string_time)

改变时间

使用 Time 类,我们可以更改当前时间:

require 'time'

currTime = Time.now
newTime = currTime + 120 # 2 minutes from now
puts newTime.strftime('%B %d, %Y %H:%M:%S')

总结

Ruby 提供了丰富的日期和时间操作的方法。Date 类可以用来处理日期,可以创建、修改和解析日期。Time 类可以用来处理时间,可以创建、修改和解析时间。通过这些可用的类和方法,Ruby 提供了足够灵活的工具,来操作和处理重要的日期和时间。