From fe1e6360e157d001264932ec073ff3810adff8bf Mon Sep 17 00:00:00 2001 From: houxg Date: Fri, 25 Nov 2016 11:10:19 +0800 Subject: [PATCH] add TimeFormatTest; improve time parser --- .../org/houxg/leamonax/utils/TimeUtils.java | 10 +++++ .../org/houxg/leamonax/TimeFormatTest.java | 42 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 app/src/test/java/org/houxg/leamonax/TimeFormatTest.java diff --git a/app/src/main/java/org/houxg/leamonax/utils/TimeUtils.java b/app/src/main/java/org/houxg/leamonax/utils/TimeUtils.java index 7a6a6f9..f52677c 100644 --- a/app/src/main/java/org/houxg/leamonax/utils/TimeUtils.java +++ b/app/src/main/java/org/houxg/leamonax/utils/TimeUtils.java @@ -32,6 +32,16 @@ public class TimeUtils { return modified; } }); + serverTime = StringUtils.replace(serverTime, + "\\+\\d+:\\d+", + "\\d+:\\d+", + new StringUtils.Replacer() { + @Override + public String replaceWith(String original, Object... extraData) { + String[] vals = original.split(":"); + return String.format(Locale.US, "%02d:%02d", Integer.valueOf(vals[0]), Integer.valueOf(vals[1])); + } + }); Date date = mServerWithMillsFormat.parse(serverTime); return date.getTime(); } catch (ParseException e) { diff --git a/app/src/test/java/org/houxg/leamonax/TimeFormatTest.java b/app/src/test/java/org/houxg/leamonax/TimeFormatTest.java new file mode 100644 index 0000000..19d9a0b --- /dev/null +++ b/app/src/test/java/org/houxg/leamonax/TimeFormatTest.java @@ -0,0 +1,42 @@ +package org.houxg.leamonax; + + +import org.houxg.leamonax.utils.TimeUtils; +import org.junit.Assert; +import org.junit.Test; + +public class TimeFormatTest { + + @Test + public void testCompose() throws Exception { + long time = 1480040991786l; + String expectTime = "2016-11-25T10:29:51.786+08:00"; + Assert.assertEquals(expectTime, TimeUtils.toServerTime(time)); + } + + @Test + public void testParse() throws Exception { + String[] formatCases = new String[]{ + "2016-11-25T02:29:51.861+08:00", + "2016-11-25T02:29:51.861+8:00", + "2016-11-25T02:29:51.861+8:0", + "2016-11-25T02:29:51.8612348761+08:00", + "2016-11-25T02:29:51.8612348761+8:00", + "2016-11-25T02:29:51.8612348761+8:0", + }; + long expectTime = 1480012191861l; + for (String format : formatCases) { + Assert.assertEquals("test " + format, expectTime, TimeUtils.toTimestamp(format)); + } + + formatCases = new String[] { + "2016-11-25T02:29:51+08:00", + "2016-11-25T02:29:51+8:00", + "2016-11-25T02:29:51+8:0" + }; + expectTime = 1480012191000l; + for (String format : formatCases) { + Assert.assertEquals("test " + format, expectTime, TimeUtils.toTimestamp(format)); + } + } +}