WDDX (de)serializes dateTime with wrong DST rules?
2006-Aug-20 00:00 is being translated to 2006-Aug-19 23:00. That date was in Pacific Daylight Time (-7) but the result seems to be -8 (PST).
I created a Web Service in Lotus Domino 7 and consume it in Coldfusion 8. I've always returned data to Coldfusion as strings and thought I'd try passing a dateTime. My Java code uses a kludge to get the ISO8601 date right:
("sb_" = java.lang.StringBuffer; "s__" = java.lang.String; "ca_" = java.util.Calendar)
df_SimpleWddx = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssZ" );
s__Kludge = df_SimpleWddx.format( ca_Began.getTime() );
sb_Wddx.append( "<var name='dt_Began'><dateTime>" + s__Kludge.substring( 0, 22 ) + ":" + s__Kludge.substring( 22 ) + "</dateTime></var>" );
My Coldfusion code:
("dx_" = WDDX data; "st_" = Coldfusion structure)
<cfwddx action="wddx2cfml" input="#dx_BadDates#" output="st_BadDates" />
<cfdump var="#st_BadDates#" />
Seeing {ts '2006-08-19 23:00:00'} in <cfdump>, I changed my Java code to:
sb_Wddx.append( "<var name='dt_Began'><string>" + s__Kludge.substring( 0, 22 ) + ":" + s__Kludge.substring( 22 ) + "</string></var>" );
and got "2006-08-20T00:00:00-07:00" (which is correct).
Unless I'm totally lost, Domino (running JVM 1.4.2_11) is sending the date correctly but <cfwddx> isn't turning it into a dateTime correctly. I'm running the Developer version of Coldfusion (on my local XP machine) and Coldfusion's JVM is 1.6.0_04.
Has anyone else fought this battle but won?
