HI,

can I kindly ask you to move discussions like these to [email protected] (whic I have added to CC) per our announcement last week.

Regards
Werner

--Original Message Text---
From: Jay Goldman
Date: Fri, 8 Apr 2005 08:50:16 -0400

@font-face {font-family: Wingdings; [EMAIL PROTECTED] Section1 {size: 612.0pt 842.0pt; margin: 72.0pt 72.0pt 72.0pt 72.0pt; }P.MsoNormal {FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman" }LI.MsoNormal {FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman" }DIV.MsoNormal {FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman" }A:link {COLOR: blue; TEXT-DECORATION: underline }SPAN.MsoHyperlink {COLOR: blue; TEXT-DECORATION: underline }A:visited {COLOR: purple; TEXT-DECORATION: underline }SPAN.MsoHyperlinkFollowed {COLOR: purple; TEXT-DECORATION: underline }SPAN.EmailStyle17 {COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal }SPAN.EmailStyle18 {COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply }DIV.Section1 {page: Section1 }I wrote specific handlers for date fields (actually i copied and modified an earlier post suggesting this approach)... such as:

public class DateOnlyDateHandler extends GeneralizedFieldHandler {

private static final String FORMAT = "yyyy-MM-dd";
private static SimpleDateFormat sFormatter = new SimpleDateFormat(FORMAT);

public DateOnlyDateHandler() {

}

public static String getFormat() {
return FORMAT;
}

public static SimpleDateFormat getFormatter() {
return new SimpleDateFormat(FORMAT);
}

/**
* This method is used to convert the value when the getValue method
* is called. The getValue method will obtain the actual field value
* from given 'parent' object. This convert method is then invoked
* with the field's value. The value returned from this
* method will be the actual value returned by getValue method.
*
* @param value the object value to convert after performing a get
* operation
* @return the converted value.
*/
public Object convertUponGet(Object value) {
if (value == null) {
return null;
}
Date date = (Date) value;
synchronized (sFormatter) {
String result = sFormatter.format(date);
return result;
}
}

/**
* This method is used to convert the value when the setValue method
* is called. The setValue method will call this method to obtain
* the converted value. The converted value will then be used as
* the value to set for the field.
*
* @param value the object value to convert before performing a set
* operation
* @return the converted value.
*/
public Object convertUponSet(Object value) {
Date date = null;
try {
synchronized (sFormatter) {
date = sFormatter.parse((String) value);
}
}
catch (ParseException px) {
throw new IllegalArgumentException(px.getMessage());
}
return date;
}

/**
* Returns the class type for the field that this GeneralizedFieldHandler
* converts to and from. This should be the type that is used in the
* object model.
*
* @return the class type of of the field
*/
public Class getFieldType() {
return Date.class;
}

/**
* Creates a new instance of the object described by this field.
*
* @param parent The object for which the field is created
* @return A new instance of the field's value
* @throws IllegalStateException This field is a simple type and
* cannot be instantiated
*/
public Object newInstance(Object parent) throws IllegalStateException {
//-- Since it's marked as a string...just return null,
//-- it's not needed.
return null;
}


From: Stephen Burrows [mailto:[EMAIL PROTECTED]
Sent: Friday, April 08, 2005 8:36 AM
To: '[email protected]'
Subject: [castor-dev] How to suppress TimeZone offset when Marshalling java.util.date







Hi All,



Does anyone know of a way to suppress timeZone offsets when marshalling a java.util.Date.



We unmarshall the following field



<dlx:FlightSegment DepartureDateTime="2005-06-04T11:45:00.000 "

ArrivalDateTime="2005-06-03T22:30:00.000+01:00" ResBookDesigCode="Y"

RPH="0" FlightNumber="9566" NumberInParty="1">



Then marshall back and the castor marshaller adds the daylight saving timezone offset of +01:00 to the

DepartureDateTime field.



<dlx:FlightSegment DepartureDateTime="2005-06-04T11:45:00.000+01:00 "

ArrivalDateTime="2005-06-03T22:30:00.000+01:00" ResBookDesigCode="Y"

RPH="0" FlightNumber="9566" NumberInParty="1">



This causes problems when we pass messages between machines in different timezones , as the marshaller

Adjusts the timezone accordingly and changes the time



Example below

> Request from time zone A:

> <dlx:FlightSegment DepartureDateTime="2005-06-04T11:45:00.000+01:00 "

> ArrivalDateTime="2005-06-03T22:30:00.000+01:00" ResBookDesigCode="Y"

> RPH="0" FlightNumber="9566" NumberInParty="1">



> Server Response from time zone B:

> <ns2:FlightSegment DepartureDateTime="2005-06-04T20:45:00.000+10:00 "

> ArrivalDateTime="2005-06-04T07:30:00.000+10:00" ResBookDesigCode="Y"

> RPH="0" FlightNumber="9566" NumberInParty="1">



DepartureDateTime ha s changed L



Any suggestions.?



Regards,



Stephen Burrows




Reply via email to