如何使用 strptime 将以毫秒为单位的时间戳字符串转换为时间对象

How to use strptime to convert timestamp string with milliseconds to time object

我需要使用 strptime 将带毫秒的时间戳字符串转换为时间对象。

解决方法是使用 parse:

t= Time.parse('29 Sep 2013 12:25:00.367')
=> 2013-09-29 12:25:00 -0400

但是我的代码使用strptime非常重要,因为我希望能够通过多种类型的格式包括:"HH:MM"、"HH"等通过函数。

我可以像这样用纳秒来完成:

Time.strptime("12:34:56:789434", "%H:%M:%S:%N")
=> 2016-03-16 12:34:56 +0100

我想要这样的东西:

Time.strptime("12:34:56:789", "%H:%M:%S:%[insert magic letter that represent milliseconds]")

我的想法是,必须有一种方法也可以做到毫秒级。

这可能吗?如何实现?

尝试%L

请参阅 Ruby 的 DateTime 文档。

如果你可以更新到 Ruby 1.9.3,它支持使用 %3N:

http://ruby-doc.org/core-1.9.3/Time.html#method-i-strftime