字符串中的Ruby日期时间转换为日期时间(毫秒)

字符串中的Ruby日期时间转换为日期时间(毫秒),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

这是一个红宝石问题(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>'
fileOpTest:34:in`strptime':fileOpTest:34:in`'中的日期无效(ArgumentError)

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


您应该升级您的Ruby版本,v1.9.1很旧而且有缺陷。Ruby 2.1也会出现同样的问题:b=DateTime.current.strftime(“%Y-%m-%d%H:%m:%S.%3N”);DateTime.strTime(b,“%Y-%m-%d%H:%m:%S.%6L”)产生相同的错误
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"