在JBossWs Web服务中发送日期时的日期转换

时间:2012-08-09 22:29:36

标签: java web-services date

我的测试设置很小,我的服务器(托管网络服务)在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作为值。

我希望我有意义。

1 个答案:

答案 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);
    }