我有以下列格式输出的日期时间字符串:
03/27/2014 07:52:47 PM
我使用名为rufus-scheduler的宝石,它在YYYY-mm-dd hh-MM-ss中采用字符串####(####是时区偏移)。是否有任何简单的方法将我拥有的第一个字符串转换为rufus-scheduler喜欢的字符串?
我知道我能做到的一种方法是创建一个解析字符串的方法,这样我就可以从中创建一个新的datetime对象,然后以rufus喜欢的格式调用strftime,但我想知道是否有是解决问题的更有效方法。
答案 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)
此外,http://www.foragoodstrftime.com/是一个很棒的工具。
答案 2 :(得分:1)
慢性(https://github.com/mojombo/chronic)是你的朋友
require 'chronic'
p Chronic.parse('03/27/2014 07:52:47 PM')