butek 02/04/01 12:11:00
Modified: java/test/encoding TestDeser2001.java
Log:
Fixed TestDeser2001 so that it works in any time zone.
Revision Changes Path
1.10 +22 -1 xml-axis/java/test/encoding/TestDeser2001.java
Index: TestDeser2001.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestDeser2001.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestDeser2001.java 31 Mar 2002 23:09:34 -0000 1.9
+++ TestDeser2001.java 1 Apr 2002 20:11:00 -0000 1.10
@@ -5,6 +5,7 @@
import java.util.Calendar;
import java.util.HashMap;
+import java.util.SimpleTimeZone;
import java.util.TimeZone;
/**
@@ -72,9 +73,29 @@
date.set(1999,04,31,12,01,30);
date.set(Calendar.MILLISECOND,150);
deserialize("<result xsi:type=\"xsd:dateTime\">" +
- "1999-05-31T12:01:30.150-05:00" +
+ "1999-05-31T12:01:30.150" + calcGMTOffset(date) +
"</result>",
date);
+ }
+
+ private final int msecsInMinute = 60000;
+ private final int msecsInHour = 60 * msecsInMinute;
+
+ private String calcGMTOffset(Calendar cal) {
+ int msecOffset = cal.get(Calendar.ZONE_OFFSET) +
+ cal.get(Calendar.DST_OFFSET);
+ int hourOffset = Math.abs(msecOffset / msecsInHour);
+ String offsetString = msecOffset > 0 ? "+" : "-";
+ offsetString += hourOffset >= 10 ? "" + hourOffset : "0" + hourOffset;
+ offsetString += ":";
+ int minOffset = Math.abs(msecOffset % msecsInHour);
+ if (minOffset == 0) {
+ offsetString += "00";
+ }
+ else {
+ offsetString += minOffset >= 10 ? "" + minOffset : "0" + minOffset;
+ }
+ return offsetString;
}
public void testBase64() throws Exception {