我的测试设置很小,我的服务器(托管网络服务)在BST时区,而客户端(简单的基于Java的Web服务客户端)在EDT中。 当Date对象(较大的复杂对象的一部分)从客户端发送到服务器或反之时,日期正在调整。例如
Thu Aug 9 23:24:31 BST 2012 on Server将被视为2012年8月9日星期四18:24:37在客户端。 我明白这是正确和好的。
在我提到的应用程序中,客户端和服务器都不知道对方的时区。因此,如果没有相应的时区信息,我如何保留时间值。
即。当8月9日23:24:31从服务器传输时,客户端也应该将2012年8月9日23:24:31作为值。
我希望我有意义。
答案 0 :(得分:0)
我刚刚在一个月前完成了同样的问题。它让我抓狂,因为它会因为UTC时间而推迟过日期。客户只想要回yyyy / MM / dd,但JBoss想要返回整个时间戳。
我上周找到了这个,它解决了这个问题。以下是整体example.
的链接import java.util.Date;
import java.text.SimpleDateFormat;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class DateAdapter extends XmlAdapter<String, Date> {
// the desired format
private String pattern = "MM/dd/yyyy";
public String marshal(Date date) throws Exception {
return new SimpleDateFormat(pattern).format(date);
}
public Date unmarshal(String dateString) throws Exception {
return new SimpleDateFormat(pattern).parse(dateString);
}