[解決済み] JAXBがxsd:dateTimeをマーシャルする際に使用する日付形式はどのように指定するのですか?
2023-03-31 09:08:05
質問
JAXBが日付オブジェクトをマーシャルするとき (
XMLGregorianCalendar
) を xsd:dateTime 要素に変換します。結果のXMLの形式を指定するにはどうしたらよいでしょうか?
例えば
デフォルトのデータフォーマットはミリ秒を使用します
<StartDate>2012-08-21T13:21:58.000Z</StartDate>
ミリ秒を省略したい。
<StartDate>2012-08-21T13:21:58Z</StartDate>
出力形式や日付のフォーマットを指定したいのですが、どうすればよいですか?
私は
javax.xml.datatype.DatatypeFactory
を作成するために
XMLGregorianCalendar
オブジェクトを作成します。
XMLGregorianCalendar xmlCal = datatypeFactory.newXMLGregorianCalendar(cal);
どのように解決するのですか?
この場合
XmlAdapter
を使って、日付型のXMLへの書き出し方法をカスタマイズすることができます。
package com.example;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class DateAdapter extends XmlAdapter<String, Date> {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public String marshal(Date v) throws Exception {
synchronized (dateFormat) {
return dateFormat.format(v);
}
}
@Override
public Date unmarshal(String v) throws Exception {
synchronized (dateFormat) {
return dateFormat.parse(v);
}
}
}
次に
@XmlJavaTypeAdapter
アノテーションを使って
XmlAdapter
が特定のフィールドやプロパティに使用されることを指定します。
@XmlElement(name = "timestamp", required = true)
@XmlJavaTypeAdapter(DateAdapter.class)
protected Date timestamp;
xjbのバインディングファイルを使用します。
<xjc:javaType name="java.util.Date" xmlType="xs:dateTime"
adapter="com.example.DateAdapter"/>
とすると、上記のようなアノテーションが生成されます。
(最終的に
xjc
という名前空間があります。
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
)
関連
-
[解決済み] Crystal Reportsで現在の日付と時刻を表示するにはどうすればよいですか?
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] オブジェクトの配列を日付のプロパティでソートする方法は?
-
[解決済み] 日付から日を引くには?
-
[解決済み] 日付を通常の書式で印刷するには?
-
[解決済み】mongodbで日付/時刻を保存する最良の方法
-
[解決済み] Pythonでミリ秒からdatetimeを作成するにはどうしたらいいですか?
-
[解決済み] moment.js で datetime を YYYY-MM-DD HH:mm:ss にフォーマットする
-
[解決済み] java.util.DateとXMLGregorianCalendarの簡易変換機能
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在時刻をdatetimeで取得する方法
-
[解決済み] Crystal Reportsで現在の日付と時刻を表示するにはどうすればよいですか?
-
[解決済み] 2つの日付範囲が重なっているかどうかを判定する
-
[解決済み】ISO 8601とRFC 3339の日付書式の違いは何ですか?
-
[解決済み】datetime.dateとdatetime.timeのオブジェクトを組み合わせるPythonicな方法
-
[解決済み】mongodbで日付/時刻を保存する最良の方法
-
[解決済み] Scalaで日付や時刻を扱う標準的な方法は何ですか?Java型を使うべきか、それともScalaのネイティブな代替手段があるのか?
-
[解決済み] UTCとGMTの違いは何ですか?
-
[解決済み] 日付/時刻比較の方法
-
[解決済み] Dartで日付/時刻の文字列をDateTimeオブジェクトに変換するには?