2

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

03/27/2014 07:52:47 PM

我正在使用一个名为 rufus-scheduler 的 gem,它采用 YYYY-mm-dd hh-MM-ss #### 中的字符串(#### 是时区偏移量)。有什么简单的方法可以将我必须的第一个字符串转换为 rufus-scheduler 喜欢的格式的字符串?

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

4

3 回答 3

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"
于 2014-03-21T00:40:21.707 回答
1

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

require 'chronic'

p Chronic.parse('03/27/2014 07:52:47 PM')
于 2014-03-21T00:40:57.370 回答
1

查看Time.strftime

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

于 2014-03-21T00:30:41.453 回答