3

xml dateTime タイプの「2011-02-27T10:03:33.099-06:00」のような文字列で時間を取得しています。TimeZone タイプのタイムゾーンもあります。そのタイムゾーンでdateTimeをGregorianCalendar Javaタイプに変換するにはどうすればよいですか。

4

3 に答える 3

2
sdf = new java.text.SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.S");

末尾の TZ を除くすべてを解析します。

sdf.parse (sd);
res168: java.util.Date = Sun Feb 27 10:03:33 CET 2011

api docsから、私は期待します

sdf = new java.text.SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSz");

最後に -06:00 を読み取るために使用されます。しかし、期待される 0700 形式のオフセットがあるか、「GMT-04:00」などの GMT のプレフィックスが付いていることがわかります。そのため、その GMT を自分で挿入する必要があります。

sdf.parse (sd.replaceAll ("(......)$", "GMT$1"))

SDF.parse (str) は Date を返します。これは GC に変換する必要があります。

GregorianCalendar calendar = new GregorianCalendar ();
calendar.setTime (date);
于 2012-05-29T15:16:51.623 に答える
2

Java には、xml 日時を解析するためのコードが組み込まれています。 DatatypeConverter.parseDateTime()を使用します。解析された TimeZone で Calendar を返します。その後、Calendar TimeZone を、次に行う必要がある目的のターゲット TimeZone に設定できます。

于 2012-05-29T15:59:55.373 に答える