红宝石日期时间字符串转换为日期时间毫秒
这是一个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>'
这可以非常容易地使用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"
嗨,我得到一个“未定义的方法'解析'时间:类(NoMethodError) “错误。你有什么版本的Ruby?我有1.9.1谢谢阿莎 – 2013-02-15 23:11:25
嗨,我添加'需要'时间',它的确奏效。非常感谢。 – 2013-02-16 00:42:46
如果迈克尔能够解决您的问题,请点击左侧的复选标记以接受答案。 – 2013-02-16 03:29:12
您应该升级您的Ruby版本,v1.9.1是旧的和buggy。 – 2013-02-16 00:51:25
与红宝石2.1发生同样的问题:b = DateTime.current.strftime(“%Y-%m-%d%H:%M:%S.%3N”); DateTime.strptime(b,“%Y-%m-%d%H:%M:%S.%6L”)产生相同的错误 – 2014-05-08 18:59:02