Rails问题解析日期

时间:2014-03-21 00:26:53

标签: ruby-on-rails datetime rufus-scheduler

我有以下列格式输出的日期时间字符串:

03/27/2014 07:52:47 PM

我使用名为rufus-scheduler的宝石,它在YYYY-mm-dd hh-MM-ss中采用字符串####(####是时区偏移)。是否有任何简单的方法将我拥有的第一个字符串转换为rufus-scheduler喜欢的字符串?

我知道我能做到的一种方法是创建一个解析字符串的方法,这样我就可以从中创建一个新的datetime对象,然后以rufus喜欢的格式调用strftime,但我想知道是否有是解决问题的更有效方法。

3 个答案:

答案 0 :(得分:2)

您可以使用DateTime::strptime进行解析,然后DateTime#strftime再次对其进行格式化。

首先require 'date'然后:

2.0.0-p451 :021 > DateTime.strptime("03/27/2014 07:52:47 PM", "%m/%d/%Y %H:%M:%S %p").strftime("%Y-%m-%d %H-%M-%S %z")
 => "2014-03-27 19-52-47 +0000"

答案 1 :(得分:1)

查看Time.strftime

此外,http://www.foragoodstrftime.com/是一个很棒的工具。

答案 2 :(得分:1)

慢性(https://github.com/mojombo/chronic)是你的朋友

require 'chronic'

p Chronic.parse('03/27/2014 07:52:47 PM')