[#62904] [ruby-trunk - Feature #9894] [Open] [RFC] README.EXT: document rb_gc_register_mark_object — normalperson@...
Issue #9894 has been reported by Eric Wong.
3 messages
2014/06/02
[#63321] [ANN] ElixirConf 2014 - Don't Miss Jos辿 Valim and Dave Thomas — Jim Freeze <jimfreeze@...>
Just a few more weeks until ElixirConf 2014!
6 messages
2014/06/24
[#63391] Access Modifiers (Internal Interfaces) — Daniel da Silva Ferreira <danieldasilvaferreira@...>
Hi,
3 messages
2014/06/28
[ruby-core:63213] [ruby-trunk - Bug #9951] DateTime.strftime and Time.strftime differ in how they treat "%L"
From:
phasis@...
Date:
2014-06-18 05:30:58 UTC
List:
ruby-core #63213
Issue #9951 has been updated by Heesob Park.
Time seems to truncate the fraction of second in strftime.
Here is a patch
~~~diff
diff --git a/strftime.c b/strftime.c
index 83550e9..a0a7de5 100644
--- a/strftime.c
+++ b/strftime.c
@@ -705,7 +705,7 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, rb_encodi
else {
int i;
for (i = 0; i < 9-precision; i++)
- subsec /= 10;
+ subsec = (int)(subsec/10.0+0.5);
snprintf(s, endp - s, "%0*ld", precision, subsec);
s += precision;
}
@@ -725,7 +725,7 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, rb_encodi
n *= 10;
if (n != 1)
subsec = mul(subsec, INT2FIX(n));
- subsec = div(subsec, INT2FIX(1));
+ subsec = div(add(subsec,DBL2NUM(0.5)), INT2FIX(1));
if (FIXNUM_P(subsec)) {
(void)snprintf(s, endp - s, "%0*ld", precision, FIX2LONG(subsec));
~~~
----------------------------------------
Bug #9951: DateTime.strftime and Time.strftime differ in how they treat "%L"
https://bugs.ruby-lang.org/issues/9951#change-47261
* Author: David Chelimsky
* Status: Assigned
* Priority: Normal
* Assignee: Akira Tanaka
* Category: core
* Target version:
* ruby -v: 1.9.3 - 2.1.1
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
~~~ruby
DateTime.new(2014,1,2,3,4,5.678).strftime("%L")
# => "678"
Time.new(2014,1,2,3,4,5.678).strftime("%L")
# => "677"
~~~
I think these should both produce "678", but at the very least they should produce the same number so users don't have to special case one or the other. I realize there is floating point math under the hood here, but that's an implementation detail I don't think users should care about in this case.
--
https://bugs.ruby-lang.org/