2012-04-11 57 views
2
time_format = '%H.%M.%S.%6N' 
timestamp = DateTime.now.strftime(time_format) # this works, it shows something like "10.09.53.595977" 
DateTime.strptime(timestamp, time_format) # error, in `strptime': invalid date (ArgumentError) 

因此,如果我真的想解析微秒(6位数),那么可以使#strptime工作吗?ruby​​ DateTime#strptime无法处理'%6N'?

回答

0

看着好像N个案例是考虑到在转/日期/ date_strptime.c红宝石源代码,试试这个:

DateTime.strptime(timestamp, '%H.%M.%S.%N') 

,并检查秒部分被解析试试这个:

d = DateTime.strptime(timestamp, '%H.%M.%S.%N') 
p d.sec_fraction 

并将它与* time_format *中的内容进行比较。

+0

'%N'部分被解析,但'%6N'不是一个可识别的标记。它似乎不像'strftime'那样工作。 – tadman 2012-04-12 14:33:42

+1

它没有。我已经创建了一个关于它的问题,修订[35312](http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/35312)在文档中为此添加了一行。 – 2012-04-12 16:23:05

+0

谢谢路易斯创建了一个关于它的问题。 – user608800 2012-06-12 19:14:19