📜  ruby 字符串到日期 - Ruby (1)

📅  最后修改于: 2023-12-03 14:47:09.331000             🧑  作者: Mango

Ruby 字符串到日期

在 Ruby 中,我们可以将字符串转换为日期对象,以便我们可以执行日期算术运算,格式化输出等操作。

使用 Date.parse 方法

我们可以使用 Date.parse 方法来将字符串转换为日期对象。这个方法会自动解析常见的日期格式,例如 ISO8601 格式、美国日期格式等。下面是一些示例代码:

require 'date'

# 将字符串转换为日期对象
date_str = '2021-09-30'
date = Date.parse(date_str)
puts date #=> 2021-09-30

# 也可以解析其他格式的日期字符串
date_str = '09/30/2021'
date = Date.parse(date_str)
puts date #=> 2021-09-30
使用 Date.strptime 方法

如果字符串的格式比较特殊,我们可以使用 Date.strptime 方法来指定解析格式。下面是一些示例代码:

require 'date'

# 将字符串转换为日期对象
date_str = '2021-09-30'
date = Date.strptime(date_str, '%Y-%m-%d')
puts date #=> 2021-09-30

# 也可以解析其他格式的日期字符串
date_str = '30/09/2021'
date = Date.strptime(date_str, '%d/%m/%Y')
puts date #=> 2021-09-30
使用 Time.parse 方法

如果我们想要处理日期和时间,我们可以使用 Time.parse 方法来将字符串转换为时间对象。这个方法与 Date.parse 类似,但它可以处理带时间的日期字符串。下面是一些示例代码:

require 'time'

# 将字符串转换为时间对象
time_str = '2021-09-30 12:34:56'
time = Time.parse(time_str)
puts time #=> 2021-09-30 12:34:56 +0800

# 也可以解析其他格式的日期字符串
time_str = '09/30/2021 12:34:56 PM'
time = Time.parse(time_str)
puts time #=> 2021-09-30 12:34:56 +0800
使用 Time.strptime 方法

对于比较特殊的日期字符串,我们也可以使用 Time.strptime 方法来指定解析格式。下面是一些示例代码:

require 'time'

# 将字符串转换为时间对象
time_str = '2021-09-30 12:34:56'
time = Time.strptime(time_str, '%Y-%m-%d %H:%M:%S')
puts time #=> 2021-09-30 12:34:56 +0800

# 也可以解析其他格式的日期字符串
time_str = '30/09/2021 12:34:56 PM'
time = Time.strptime(time_str, '%d/%m/%Y %I:%M:%S %p')
puts time #=> 2021-09-30 12:34:56 +0800

以上就是关于 Ruby 字符串到日期的介绍,使用 DateTime 类提供的解析方法,我们可以方便地将字符串转换为日期和时间对象,实现各种日期处理需求。