You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/06/08 11:02:37 UTC

incubator-kylin git commit: KYLIN-817 change TimeStrDictionary decode behaviour

Repository: incubator-kylin
Updated Branches:
  refs/heads/0.8.0 44b3c6a3a -> cb10c562f


KYLIN-817 change TimeStrDictionary decode behaviour


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/cb10c562
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/cb10c562
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/cb10c562

Branch: refs/heads/0.8.0
Commit: cb10c562fd5fe87bcaac2341475a49eb652dab31
Parents: 44b3c6a
Author: honma <ho...@ebay.com>
Authored: Mon Jun 8 17:01:34 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Mon Jun 8 17:01:53 2015 +0800

----------------------------------------------------------------------
 .../apache/kylin/common/util/DateFormat.java    | 12 +++++--
 .../apache/kylin/dict/TimeStrDictionary.java    |  9 +----
 .../kylin/dict/TimeStrDictionaryTests.java      | 36 +++++++++-----------
 3 files changed, 27 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/cb10c562/common/src/main/java/org/apache/kylin/common/util/DateFormat.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/DateFormat.java b/common/src/main/java/org/apache/kylin/common/util/DateFormat.java
index d184a24..c6a651f 100644
--- a/common/src/main/java/org/apache/kylin/common/util/DateFormat.java
+++ b/common/src/main/java/org/apache/kylin/common/util/DateFormat.java
@@ -30,11 +30,19 @@ public class DateFormat {
     }
 
     public static String formatToDateStr(long millis) {
-        return getDateFormat(DEFAULT_DATE_PATTERN).format(new Date(millis));
+        return formatToTimeStr(millis, DEFAULT_DATE_PATTERN);
     }
 
     public static String formatToTimeStr(long millis) {
-        return getDateFormat(DEFAULT_DATETIME_PATTERN_WITH_MILLISECONDS).format(new Date(millis));
+        return formatToTimeStr(millis, DEFAULT_DATETIME_PATTERN_WITH_MILLISECONDS);
+    }
+
+    public static String formatToTimeWithoutMilliStr(long millis) {
+        return formatToTimeStr(millis, DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
+    }
+
+    public static String formatToTimeStr(long millis, String pattern) {
+        return getDateFormat(pattern).format(new Date(millis));
     }
 
     public static String dateToString(Date date, String pattern) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/cb10c562/dictionary/src/main/java/org/apache/kylin/dict/TimeStrDictionary.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/TimeStrDictionary.java b/dictionary/src/main/java/org/apache/kylin/dict/TimeStrDictionary.java
index 3759d23..2c576e7 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/TimeStrDictionary.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/TimeStrDictionary.java
@@ -56,14 +56,7 @@ public class TimeStrDictionary extends Dictionary<String> {
             return null;
 
         long millis = 1000L * id;
-        String s = Long.toString(millis);
-
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < maxLenghOfPositiveLong - s.length(); ++i) {
-            sb.append('0');
-        }
-        sb.append(s);
-        return sb.toString();
+        return DateFormat.formatToTimeWithoutMilliStr(millis);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/cb10c562/dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTests.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTests.java b/dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTests.java
index 93b2dae..1e381d4 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTests.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/TimeStrDictionaryTests.java
@@ -5,8 +5,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.Date;
-
 /**
  */
 public class TimeStrDictionaryTests {
@@ -31,17 +29,17 @@ public class TimeStrDictionaryTests {
 
     @Test
     public void testEncodeDecode() {
-        encodeDecode("1999-01-12", DateFormat.DEFAULT_DATE_PATTERN);
-        encodeDecode("2038-01-09", DateFormat.DEFAULT_DATE_PATTERN);
-        encodeDecode("2038-01-08", DateFormat.DEFAULT_DATE_PATTERN);
-        encodeDecode("1970-01-01", DateFormat.DEFAULT_DATE_PATTERN);
-        encodeDecode("1970-01-02", DateFormat.DEFAULT_DATE_PATTERN);
-
-        encodeDecode("1999-01-12 11:00:01", DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
-        encodeDecode("2038-01-09 01:01:02", DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
-        encodeDecode("2038-01-19 03:14:07", DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
-        encodeDecode("1970-01-01 23:22:11", DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
-        encodeDecode("1970-01-02 23:22:11", DateFormat.DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS);
+        encodeDecode("1999-01-12");
+        encodeDecode("2038-01-09");
+        encodeDecode("2038-01-08");
+        encodeDecode("1970-01-01");
+        encodeDecode("1970-01-02");
+
+        encodeDecode("1999-01-12 11:00:01");
+        encodeDecode("2038-01-09 01:01:02");
+        encodeDecode("2038-01-19 03:14:07");
+        encodeDecode("1970-01-01 23:22:11");
+        encodeDecode("1970-01-02 23:22:11");
     }
 
     @Test
@@ -49,14 +47,12 @@ public class TimeStrDictionaryTests {
         Assert.assertEquals(-1, dict.getIdFromValue("2038-01-19 03:14:08"));
     }
 
-    public void encodeDecode(String origin, String pattern) {
+    public void encodeDecode(String origin) {
         int a = dict.getIdFromValue(origin);
-        String v = dict.getValueFromId(a);
-        long ts = Long.parseLong(v);
-        String back = DateFormat.dateToString(new Date(ts), pattern);
-        Assert.assertEquals(origin, back);
-    }
-
+        String back = dict.getValueFromId(a);
 
+        String originChoppingMilis = DateFormat.formatToTimeWithoutMilliStr(DateFormat.stringToMillis(origin));
+        Assert.assertEquals(originChoppingMilis, back);
+    }
 
 }