Issue #11220 has been updated by Yui NARUSE.

Description updated

----------------------------------------
Feature #11220: strptime(%6N)
https://bugs.ruby-lang.org/issues/11220#change-52753

* Author: Yui NARUSE
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
strftimeにはマイクロ秒などでの出力を指定する、%6N, %9Nというフォーマットがあります。
一方で、パースを行うstrptimeにはそのような指定子が現在ありません。

そのようなものに対するニーズはぼちぼちあるようなので入れませんか。
http://answers.splunk.com/answers/1946/time-format-and-subseconds.html
https://twitter.com/nalsh/status/606414387352502272

```
diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c
index e318af1..89a6421 100644
--- a/ext/date/date_strptime.c
+++ b/ext/date/date_strptime.c
@@ -611,6 +611,33 @@ date__strptime_internal(const char *str, size_t slen,
                recur("%a %b %e %H:%M:%S %Z %Y");
                goto matched;

+             case '0': case '1': case '2': case '3': case '4':
+             case '5': case '6': case '7': case '8': case '9':
+               {
+                   VALUE n;
+                   size_t w;
+                   int sign = 1;
+                   size_t osi;
+                   w = read_digits(&fmt[fi], &n, 1);
+                   fi += w;
+                   w = NUM2SIZET(n);
+
+                   if (issign(str[si])) {
+                       if (str[si] == '-')
+                           sign = -1;
+                       si++;
+                   }
+                   osi = si;
+                   READ_DIGITS(n, w == 0 ? 9 : w)
+                   if (sign == -1)
+                       n = f_negate(n);
+                   set_hash("sec_fraction",
+                       rb_rational_new2(n,
+                       f_expt(INT2FIX(10),
+                       ULONG2NUM(si - osi))));
+                   goto matched;
+               }
+
              default:
                if (str[si] != '%')
                    fail();
```



-- 
https://bugs.ruby-lang.org/