You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2008/11/18 14:23:37 UTC

svn commit: r718576 - in /labs/magma/trunk/foundation-conversion/src: main/java/org/apache/magma/conversion/ test/java/org/apache/magma/conversion/

Author: simoneg
Date: Tue Nov 18 05:23:37 2008
New Revision: 718576

URL: http://svn.apache.org/viewvc?rev=718576&view=rev
Log:
Support ISO-RFC822 date formats

Modified:
    labs/magma/trunk/foundation-conversion/src/main/java/org/apache/magma/conversion/DateConverter.java
    labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterFromStringCorrect.java
    labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterToStringCorrect.java

Modified: labs/magma/trunk/foundation-conversion/src/main/java/org/apache/magma/conversion/DateConverter.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-conversion/src/main/java/org/apache/magma/conversion/DateConverter.java?rev=718576&r1=718575&r2=718576&view=diff
==============================================================================
--- labs/magma/trunk/foundation-conversion/src/main/java/org/apache/magma/conversion/DateConverter.java (original)
+++ labs/magma/trunk/foundation-conversion/src/main/java/org/apache/magma/conversion/DateConverter.java Tue Nov 18 05:23:37 2008
@@ -33,9 +33,10 @@
 		patterns.add("yyyy");
 		patterns.add("yyyy-MM");
 		patterns.add("yyyy-MM-dd");
-		patterns.add("yyyy-MM-dd HH:mm");
-		patterns.add("yyyy-MM-dd HH:mm:ss");
-		patterns.add("yyyy-MM-dd HH:mm:ss.SSS");
+		patterns.add("yyyy-MM-dd'T'HH:mm");
+		patterns.add("yyyy-MM-dd'T'HH:mm:ss");
+		patterns.add("yyyy-MM-dd'T'HH:mm:ss.SSS");
+		patterns.add("yyyy-MM-dd'T'HH:mm:ssz");
 	}
 	
 	protected LocalizableString parsingError = new LocalizableString("Invalid date");		
@@ -48,6 +49,16 @@
 		if (value == null || value.length() == 0) return null;
 		SimpleDateFormat sdf = null;
 		int len = value.length();
+		if (value.indexOf('T') != -1) len += 2;
+		int tzof = value.indexOf('+'); 
+		if (tzof != -1) {
+			int tps = value.indexOf(':', tzof);
+			if (tps != -1) {
+				value = value.substring(0,tps) + value.substring(tps + 1);
+				len --;
+			}
+			len -= 4;
+		}
 		for (String patt : patterns) {
 			if (patt.length() == len) {
 				sdf = new SimpleDateFormat(patt);
@@ -65,7 +76,7 @@
 
 	public String toString(Date value) {
 		if (value == null) return "";
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 		StringBuilder ret = new StringBuilder(sdf.format(value));
 		if (ret.substring(ret.length() - 3, ret.length()).equals("000")) {
 			ret.delete(ret.length() - 4, ret.length());

Modified: labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterFromStringCorrect.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterFromStringCorrect.java?rev=718576&r1=718575&r2=718576&view=diff
==============================================================================
--- labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterFromStringCorrect.java (original)
+++ labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterFromStringCorrect.java Tue Nov 18 05:23:37 2008
@@ -38,20 +38,21 @@
 	@Before
 	public void initConverter() {
 		converter = new DateConverter();
-		sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+		sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 	}
 			
 	@DataPoint public static String[]
-	set1 = {"2008", "2008-01-01 00:00:00.000"},
-	set2 = {"2008-02", "2008-02-01 00:00:00.000"},
-	set3 = {"2008-02-02", "2008-02-02 00:00:00.000"},
-	set4 = {"2008-02-02 15:40", "2008-02-02 15:40:00.000"},
-	set5 = {"2008-02-02 15:40:10", "2008-02-02 15:40:10.000"},
-	set6 = {"2008-02-02 15:40:10.423", "2008-02-02 15:40:10.423"};
+	set1 = {"2008", "2008-01-01T00:00:00.000"},
+	set2 = {"2008-02", "2008-02-01T00:00:00.000"},
+	set3 = {"2008-02-02", "2008-02-02T00:00:00.000"},
+	set4 = {"2008-02-02T15:40", "2008-02-02T15:40:00.000"},
+	set5 = {"2008-02-02T15:40:10", "2008-02-02T15:40:10.000"},
+	set6 = {"2008-02-02T15:40:10.423", "2008-02-02T15:40:10.423"};
 	
 	@Theory public void convert(String[] vals) {
 		Date d = converter.fromString(vals[0]);
 		String ctrl = sdf.format(d);
+		//System.out.println(vals[1] + " -> " + vals[0] + " = " + ctrl);
 		assertEquals(ctrl, vals[1]);
 	}
 	

Modified: labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterToStringCorrect.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterToStringCorrect.java?rev=718576&r1=718575&r2=718576&view=diff
==============================================================================
--- labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterToStringCorrect.java (original)
+++ labs/magma/trunk/foundation-conversion/src/test/java/org/apache/magma/conversion/TestDateConverterToStringCorrect.java Tue Nov 18 05:23:37 2008
@@ -39,16 +39,16 @@
 	@Before
 	public void initConverter() {
 		converter = new DateConverter();
-		sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+		sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 	}
 			
 	@DataPoint public static String[]
-	set1 = {"2008-01-01", "2008-01-01 00:00:00.000"},
-	set2 = {"2008-02-01", "2008-02-01 00:00:00.000"},
-	set3 = {"2008-02-02", "2008-02-02 00:00:00.000"},
-	set4 = {"2008-02-02 15:40", "2008-02-02 15:40:00.000"},
-	set5 = {"2008-02-02 15:40:10", "2008-02-02 15:40:10.000"},
-	set6 = {"2008-02-02 15:40:10.423", "2008-02-02 15:40:10.423"};
+	set1 = {"2008-01-01", "2008-01-01T00:00:00.000"},
+	set2 = {"2008-02-01", "2008-02-01T00:00:00.000"},
+	set3 = {"2008-02-02", "2008-02-02T00:00:00.000"},
+	set4 = {"2008-02-02T15:40", "2008-02-02T15:40:00.000"},
+	set5 = {"2008-02-02T15:40:10", "2008-02-02T15:40:10.000"},
+	set6 = {"2008-02-02T15:40:10.423", "2008-02-02T15:40:10.423"};
 	
 	@Theory public void convert(String[] vals) throws ParseException {
 		Date d = sdf.parse(vals[1]);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org