首页 > 解决方案 > 将 Ruby 字符串转换为正确的日期和时间

问题描述

我有一个包含 Timestamp 的 Ruby 变量,我需要从中获取 Date 和 Time ,我能够获取 Date (但错误)时间始终是 00:00 (注意:li是从文件中获取的变量)

li = 'Date: Wed, 25 Dec 2019 23:16:52 -0600'
date = li.delete("Date: ")
  => "Wd,25c2019231652-0600"
puts date
  Wd,25c2019231652-0600
Date.parse(date).to_s
  => "2020-09-25"
Time.parse(date).to_s
  => "2020-09-25 00:00:00 +0530"
DateTime.parse(date).to_s
  => "2020-09-25T00:00:00+00:00"
DateTime.parse(date).strftime('%Y-%d-%m %H:%M:%S')
  => "2020-25-09 00:00:00"

我需要获取正确的日期和时间(UTC 或 -0600)

标签: rubydatetime

解决方案


li = 'Date: Wed, 25 Dec 2019 23:16:52 -0600'
require 'date'

Date.strptime(li, 'Date: %a, %d %b %Y %H:%M:%S %z')
  #=> #<Date: 2019-12-25 ((2458843j,0s,0n),+0s,2299161j)> 

请参阅日期::strptime。日期时间格式指令在文档DateTime#strftime中给出。


推荐阅读