9

これが繰り返されないことを願っています。ここで他の検索を確認しましたが、それらはすべて、SimpleDateFormatを使用して正しいTimeZone形式で日付を「表示」することについて話しているようです。

しかし、私の問題は、「CET」で言うことができるXMLGregorianCalendarオブジェクトを取得することです。

このオブジェクトからフォーマットを見つけて、サーバーと同じTimeZoneで現在の時刻を送信する必要があります。

例:次の形式(タイムゾーン付き)で返されるXMLGregorianCalendarオブジェクトが必要です。

2012-09-19T15:23:36.421 + 02:00

だから私はローカルタイムゾーンの時間を返すだけのように見えるこの次のスニペットを試しました:(

TimeZone utc = TimeZone.getTimeZone("CET");
GregorianCalendar gc = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
df.setTimeZone(utc);
System.out.println(" - Gregorian UTC [" + df.format(gc.getTime()) + "]")

XMLGregorianCalendar currServTime = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);

System.out.println("currServTime is "+currServTime);
4

1 に答える 1

11

コンストラクターGregorianCalendarに渡すか、後で設定することにより、関心あるタイムゾーンを含める必要があります。したがって、これらの行のいずれかが機能するはずです。

GregorianCalendar gc = new GregorianCalendar(utc);
gc.setTimeZone(utc);
于 2012-09-19T13:53:42.667 に答える