You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/02/16 05:45:34 UTC
svn commit: r628238 - in /ode/branches/APACHE_ODE_1.1/utils/src:
main/java/org/apache/ode/utils/ISO8601DateParser.java
test/java/org/apache/ode/utils/ISO8601DateParserTest.java
Author: mriou
Date: Fri Feb 15 20:45:34 2008
New Revision: 628238
URL: http://svn.apache.org/viewvc?rev=628238&view=rev
Log:
Fixing schema date format for milliseconds.
Modified:
ode/branches/APACHE_ODE_1.1/utils/src/main/java/org/apache/ode/utils/ISO8601DateParser.java
ode/branches/APACHE_ODE_1.1/utils/src/test/java/org/apache/ode/utils/ISO8601DateParserTest.java
Modified: ode/branches/APACHE_ODE_1.1/utils/src/main/java/org/apache/ode/utils/ISO8601DateParser.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/utils/src/main/java/org/apache/ode/utils/ISO8601DateParser.java?rev=628238&r1=628237&r2=628238&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/utils/src/main/java/org/apache/ode/utils/ISO8601DateParser.java (original)
+++ ode/branches/APACHE_ODE_1.1/utils/src/main/java/org/apache/ode/utils/ISO8601DateParser.java Fri Feb 15 20:45:34 2008
@@ -70,6 +70,14 @@
// insert milliseconds
buffer.insert(19, ".000");
}
+ if (buffer.charAt(19) == '.' && (buffer.length() < 22 ||
+ (buffer.lastIndexOf("-") < 23 && buffer.lastIndexOf("-") > 19) ||
+ (buffer.lastIndexOf("+") < 23 && buffer.lastIndexOf("+") > 0)))
+ buffer.insert(20, "0");
+ if (buffer.charAt(19) == '.' && (buffer.length() < 22 ||
+ (buffer.lastIndexOf("-") < 23 && buffer.lastIndexOf("-") > 19) ||
+ (buffer.lastIndexOf("+") < 23 && buffer.lastIndexOf("+") > 0)))
+ buffer.insert(20, "0");
if (buffer.length() > 23) {
// append timezone
pattern = pattern + "Z";
Modified: ode/branches/APACHE_ODE_1.1/utils/src/test/java/org/apache/ode/utils/ISO8601DateParserTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/utils/src/test/java/org/apache/ode/utils/ISO8601DateParserTest.java?rev=628238&r1=628237&r2=628238&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.1/utils/src/test/java/org/apache/ode/utils/ISO8601DateParserTest.java (original)
+++ ode/branches/APACHE_ODE_1.1/utils/src/test/java/org/apache/ode/utils/ISO8601DateParserTest.java Fri Feb 15 20:45:34 2008
@@ -28,43 +28,68 @@
public class ISO8601DateParserTest extends TestCase {
- public void test1() throws ParseException {
- String in = "2004-05-31T09:19:31-05:00";
+ public void test1() throws ParseException {
+ String in = "2004-05-31T09:19:31-05:00";
- Date d = ISO8601DateParser.parse(in);
- assertDate(d, 2004, 5, 31, 9, 19, 31, "GMT-5");
- }
-
- public void test2() throws ParseException {
- String in = "2004-06-23T17:25:31-00:00";
- Date d = ISO8601DateParser.parse(in);
- assertDate(d, 2004, 6, 23, 17, 25, 31, "GMT");
- }
-
- public void test3() throws ParseException {
- String in = "2004-06-23T17:25-00:00";
- Date d = ISO8601DateParser.parse(in);
- assertDate(d, 2004, 6, 23, 17, 25, 0, "GMT");
- }
-
- public void test4() throws ParseException {
- String in = "2002-10-02T10:00:00-05:00";
- Date d = ISO8601DateParser.parse(in);
- assertDate(d, 2002, 10, 2, 10, 0, 0, "GMT-5");
- }
-
- private void assertDate(Date d, int year, int month, int day,
- int hour, int minute, int second, String tz) {
- Calendar cal = Calendar.getInstance();
- cal.setTime(d);
- cal.setTimeZone(TimeZone.getTimeZone(tz));
-
- assertEquals(year, cal.get(Calendar.YEAR));
- assertEquals(month - 1, cal.get(Calendar.MONTH));
- assertEquals(day, cal.get(Calendar.DAY_OF_MONTH));
- assertEquals(hour, cal.get(Calendar.HOUR_OF_DAY));
- assertEquals(minute, cal.get(Calendar.MINUTE));
- assertEquals(second, cal.get(Calendar.SECOND));
- }
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2004, 5, 31, 9, 19, 31, 0, "GMT-5");
+ }
+
+ public void test2() throws ParseException {
+ String in = "2004-06-23T17:25:31-00:00";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2004, 6, 23, 17, 25, 31, 0, "GMT");
+ }
+
+ public void test3() throws ParseException {
+ String in = "2004-06-23T17:25-00:00";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2004, 6, 23, 17, 25, 0, 0, "GMT");
+ }
+
+ public void test4() throws ParseException {
+ String in = "2002-10-02T10:00:00-05:00";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2002, 10, 2, 10, 0, 0, 0, "GMT-5");
+ }
+
+ public void test5() throws ParseException {
+ String in = "2008-02-15T18:44:54.9-08:00";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2008, 2, 15, 18, 44, 54, 9, "GMT-8");
+ }
+
+ public void test6() throws ParseException {
+ String in = "2008-02-15T18:44:54.109-08:00";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2008, 2, 15, 18, 44, 54, 109, "GMT-8");
+ }
+
+ public void test7() throws ParseException {
+ String in = "2004-06-23T17:25:31.6";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2004, 6, 23, 17, 25, 31, 6, null);
+ }
+
+ public void test8() throws ParseException {
+ String in = "2004-06-23T17:25:10.826";
+ Date d = ISO8601DateParser.parse(in);
+ assertDate(d, 2004, 6, 23, 17, 25, 10, 826, null);
+ }
+
+ private void assertDate(Date d, int year, int month, int day,
+ int hour, int minute, int second, int ms, String tz) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(d);
+ if (tz != null) cal.setTimeZone(TimeZone.getTimeZone(tz));
+
+ assertEquals(year, cal.get(Calendar.YEAR));
+ assertEquals(month - 1, cal.get(Calendar.MONTH));
+ assertEquals(day, cal.get(Calendar.DAY_OF_MONTH));
+ assertEquals(hour, cal.get(Calendar.HOUR_OF_DAY));
+ assertEquals(minute, cal.get(Calendar.MINUTE));
+ assertEquals(second, cal.get(Calendar.SECOND));
+ assertEquals(ms, cal.get(Calendar.MILLISECOND));
+ }
}