This is an automated email from the ASF dual-hosted git repository.

gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/master by this push:
     new ddb26f2  do not ignore ms in ruby time (#6217)
ddb26f2 is described below

commit ddb26f2696be8db05c240cac34d6b1b98cb26fdf
Author: Himanshu <[email protected]>
AuthorDate: Thu Aug 23 14:09:31 2018 -0700

    do not ignore ms in ruby time (#6217)
---
 .../java/io/druid/java/util/common/parsers/TimestampParser.java     | 6 +++---
 .../java/io/druid/java/util/common/parsers/TimestampParserTest.java | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/java-util/src/main/java/io/druid/java/util/common/parsers/TimestampParser.java
 
b/java-util/src/main/java/io/druid/java/util/common/parsers/TimestampParser.java
index 7019a55..14de994 100644
--- 
a/java-util/src/main/java/io/druid/java/util/common/parsers/TimestampParser.java
+++ 
b/java-util/src/main/java/io/druid/java/util/common/parsers/TimestampParser.java
@@ -79,7 +79,6 @@ public class TimestampParser
         return 
numericFun.apply(Long.parseLong(ParserUtils.stripQuotes(input)));
       };
     } else if ("ruby".equalsIgnoreCase(format)) {
-      // Numeric parser ignores millis for ruby.
       final Function<Number, DateTime> numericFun = 
createNumericTimestampParser(format);
       return input -> {
         Preconditions.checkArgument(!Strings.isNullOrEmpty(input), "null 
timestamp");
@@ -103,11 +102,12 @@ public class TimestampParser
       final String format
   )
   {
-    // Ignore millis for ruby
-    if ("posix".equalsIgnoreCase(format) || "ruby".equalsIgnoreCase(format)) {
+    if ("posix".equalsIgnoreCase(format)) {
       return input -> 
DateTimes.utc(TimeUnit.SECONDS.toMillis(input.longValue()));
     } else if ("nano".equalsIgnoreCase(format)) {
       return input -> 
DateTimes.utc(TimeUnit.NANOSECONDS.toMillis(input.longValue()));
+    } else if ("ruby".equalsIgnoreCase(format)) {
+      return input -> DateTimes.utc(Double.valueOf(input.doubleValue() * 
1000).longValue());
     } else {
       return input -> DateTimes.utc(input.longValue());
     }
diff --git 
a/java-util/src/test/java/io/druid/java/util/common/parsers/TimestampParserTest.java
 
b/java-util/src/test/java/io/druid/java/util/common/parsers/TimestampParserTest.java
index c8738f4..ef6960d 100644
--- 
a/java-util/src/test/java/io/druid/java/util/common/parsers/TimestampParserTest.java
+++ 
b/java-util/src/test/java/io/druid/java/util/common/parsers/TimestampParserTest.java
@@ -97,8 +97,8 @@ public class TimestampParserTest
   public void testRuby()
   {
     final Function<Object, DateTime> parser = 
TimestampParser.createObjectTimestampParser("ruby");
-    Assert.assertEquals(DateTimes.of("2013-01-16T15:41:47+01:00"), 
parser.apply("1358347307.435447"));
-    Assert.assertEquals(DateTimes.of("2013-01-16T15:41:47+01:00"), 
parser.apply(1358347307.435447D));
+    Assert.assertEquals(DateTimes.of("2013-01-16T14:41:47.435Z"), 
parser.apply("1358347307.435447"));
+    Assert.assertEquals(DateTimes.of("2013-01-16T14:41:47.435Z"), 
parser.apply(1358347307.435447D));
   }
 
   @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to