字符串转换为日期时间的Ruby日期时间,以毫秒为单位

时间:2013-02-15 22:12:52

标签: ruby

这是一个Ruby问题(1.9.1)

我在字符串中有以下日期和时间:

29 Sep 2013 12:25:00.367

我首先要将它从字符串转换为日期和时间然后再转换 添加10秒钟并将其转换回相同的字符串格式 上方。

我写了这段代码:

format = "%d %b %Y %H:%M:%S"
date_time = "29 Sep 2013 22:11:30.195"
parsed_time = DateTime.strptime(date_time, format)
puts " new date time is #{parsed_time}"

哪个输出:

new date time is 2013-09-29T22:11:30+00:00

我没看到“195”。我试过了format = "%d %b %Y %H:%M:%S.%3N",这给了:

fileOpTest:34:in `strptime': invalid date (ArgumentError) from fileOpTest:34:in `<main>'

1 个答案:

答案 0 :(得分:15)

使用Time class可以非常轻松地完成此操作。您可以通过添加秒来添加时间。然后使用#strftime

t= Time.parse('29 Sep 2013 12:25:00.367')
=> 2013-09-29 12:25:00 -0400
t=t + 10
=> 2013-09-29 12:25:10 -0400
t.strftime("%d %b %Y %H:%M:%S.%3N")
=> "29 Sep 2013 12:25:10.367"