From: frsyuki@... Date: 2015-02-25T06:01:01+00:00 Subject: [ruby-core:68301] [Ruby trunk - Bug #10904] [Open] Time.strptime with %s.%N format should not ignore sec_fraction Issue #10904 has been reported by Sadayuki Furuhashi. ---------------------------------------- Bug #10904: Time.strptime with %s.%N format should not ignore sec_fraction https://bugs.ruby-lang.org/issues/10904 * Author: Sadayuki Furuhashi * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- `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-------------------------------- strptime-s-n-format-sec-fraction-fix.patch (746 Bytes) -- https://bugs.ruby-lang.org/