0

我有一个小型测试设置,其中我的服务器(托管 web 服务)位于 BST 时区,客户端(基于简单 java 的 web 服务客户端)位于 EDT。当 Date 对象(更大的复杂对象的一部分)从 Client 发送到 Server 时,反之亦然,日期正在调整。例如

服务器上的 Thu Aug 9 23:24:31 BST 2012 在客户端将被视为 Thu Aug 9 18:24:37 EDT 2012。我明白这是正确和好的。

在我提到的应用程序中,客户端和服务器都不知道相反的时区。因此,如果没有相应的时区信息,我该如何保留 Time 值。

即当从服务器传输 Aug 9 23:24:31 2012 时,客户端也应该得到 Aug 9 23:24:31 2012 作为值。

我希望我说得通。

4

1 回答 1

0

大约一个月前,我刚刚遇到了同样的问题。它让我发疯,因为它会因为 UTC 时间而翻转日期。客户端只想要返回 yyyy/MM/dd,但 JBoss 想要返回整个时间戳。

我上周发现了这个,它解决了这个问题。这是整个示例的链接。

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);
    }   
于 2012-08-10T01:06:30.413 回答