0

サーバー (Web サービスをホストする) が BST タイムゾーンにあり、クライアント (単純な Java ベースの Web サービス クライアント) が EDT にある小さなテスト セットアップがあります。Date オブジェクト (より大きな複雑なオブジェクトの一部) がクライアントからサーバーに、またはその逆に送信されると、日付が調整されます。例えば

サーバー上の Thu Aug 9 23:24:31 BST 2012 は、クライアントでは Thu Aug 9 18:24:37 EDT 2012 として表示されます。私はこれが正しくて問題ないことを理解しています。

私が言及したアプリケーションでは、クライアントとサーバーの両方が反対側のタイムゾーンを認識していません。したがって、それぞれのタイムゾーン情報がなければ、どのように時間値を保持できますか?

つまり、サーバーから Aug 9 23:24:31 2012 が送信されると、クライアントも値として Aug 9 23:24:31 2012 を取得する必要があります。

私が理にかなっていることを願っています。

4

1 に答える 1

0

約1か月前に、まったく同じ問題を経験しました。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 に答える