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 {