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工作?

4

1 回答 1

0

查看 ext/date/date_strptime.c 的 ruby​​ 源代码,似乎考虑了 N 情况,试试这个:

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

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

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

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

于 2012-04-11T17:46:32.467 回答