Actions
Bug #10904
closedTime.strptime with %s.%N format should not ignore sec_fraction
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
Description
Time.strptime
with "%s.%N" format ignores milliseconds, microseconds and nanoseconds.
For example, Time.strptime("0.123", "%s.%N").tv_usec
returns 0.
Here is the script to reproduce:
require 'time'
# sec (this is ok)
t1 = Time.strptime("2015-02-24 21:02:57.321", "%Y-%m-%d %H:%m:%S")
p t1.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.000000000"
t2 = Time.strptime("1424842137.321", "%s")
p t2.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.000000000"
# msec
t1 = Time.strptime("2015-02-24 21:02:57.321", "%Y-%m-%d %H:%m:%S.%N")
p t1.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.321000000"
t2 = Time.strptime("1424842137.321", "%s.%N")
p t2.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.000000000"
# usec
t1 = Time.strptime("2015-02-24 21:02:57.654321", "%Y-%m-%d %H:%m:%S.%N")
p t1.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.654321000"
t2 = Time.strptime("1424842137.654321", "%s.%N")
p t2.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.000000000"
# nsec
t1 = Time.strptime("2015-02-24 21:02:57.987654321", "%Y-%m-%d %H:%m:%S.%N")
p t1.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.987654321"
t2 = Time.strptime("1424842137.987654321", "%s.%N")
p t2.strftime("%Y-%m-%d %H:%m:%S.%N") #=> "2015-02-24 21:02:57.000000000"
p RUBY_VERSION
I attached a patch to fix this issue (strptime-s-n-format-sec-fraction-fix.patch).
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0