You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2018/02/28 11:28:15 UTC

[cloudstack] branch master updated: dateutil: constistency of tzdate input and output (#2392)

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

dahn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ad5202  dateutil: constistency of tzdate input and output (#2392)
2ad5202 is described below

commit 2ad520282319da9a03061b8c744e51a4ffdf94a2
Author: Yoan Blanc <yo...@dosimple.ch>
AuthorDate: Wed Feb 28 12:28:10 2018 +0100

    dateutil: constistency of tzdate input and output (#2392)
    
    Signed-off-by: Yoan Blanc <yo...@exoscale.ch>
    Signed-off-by: Daan Hoogland <da...@shapeblue.com>
---
 utils/src/main/java/com/cloud/utils/DateUtil.java  | 10 +++++---
 .../test/java/com/cloud/utils/DateUtilTest.java    | 27 +++++++++++++++-------
 2 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/utils/src/main/java/com/cloud/utils/DateUtil.java b/utils/src/main/java/com/cloud/utils/DateUtil.java
index 7787e1b..9f046d1 100644
--- a/utils/src/main/java/com/cloud/utils/DateUtil.java
+++ b/utils/src/main/java/com/cloud/utils/DateUtil.java
@@ -38,10 +38,14 @@ public class DateUtil {
         return new Date();
     }
 
-    // yyyy-MM-ddTHH:mm:ssZxxxx
+    // yyyy-MM-ddTHH:mm:ssZZZZ or yyyy-MM-ddTHH:mm:ssZxxxx
     public static Date parseTZDateString(String str) throws ParseException {
-        DateFormat dfParse = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'Z");
-        return dfParse.parse(str);
+        try {
+            return s_outputFormat.parse(str);
+        } catch (ParseException e) {
+            final DateFormat dfParse = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'Z");
+            return dfParse.parse(str);
+        }
     }
 
     public static Date parseDateString(TimeZone tz, String dateString) {
diff --git a/utils/src/test/java/com/cloud/utils/DateUtilTest.java b/utils/src/test/java/com/cloud/utils/DateUtilTest.java
index ba88505..190adea 100644
--- a/utils/src/test/java/com/cloud/utils/DateUtilTest.java
+++ b/utils/src/test/java/com/cloud/utils/DateUtilTest.java
@@ -27,6 +27,9 @@ import java.util.TimeZone;
 
 import com.cloud.utils.DateUtil.IntervalType;
 
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 
 public class DateUtilTest {
 
@@ -44,17 +47,25 @@ public class DateUtilTest {
         if (args.length == 2) {
             System.out.println("Next run time: " + DateUtil.getNextRunTime(IntervalType.getIntervalType(args[0]), args[1], "GMT", time).toString());
         }
+    }
 
-        time = new Date();
+    @Test
+    public void zonedTimeFormatLegacy() throws ParseException {
+        Date time = new Date();
         DateFormat dfDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'Z");
         String str = dfDate.format(time);
-        System.out.println("Formated TZ time string : " + str);
-        try {
-            Date dtParsed = DateUtil.parseTZDateString(str);
-            System.out.println("Parsed TZ time string : " + dtParsed.toString());
-        } catch (ParseException e) {
-            System.err.println("Parsing failed\n string : " + str + "\nexception :" + e.getLocalizedMessage());
-        }
+        Date dtParsed = DateUtil.parseTZDateString(str);
+
+        assertEquals(time.toString(), dtParsed.toString());
     }
 
+    @Test
+    public void zonedTimeFormat() throws ParseException {
+        Date time = new Date();
+        DateFormat dfDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
+        String str = dfDate.format(time);
+        Date dtParsed = DateUtil.parseTZDateString(str);
+
+        assertEquals(time.toString(), dtParsed.toString());
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
dahn@apache.org.