6

SSミリ秒HH:MMタイムゾーンを使用して、 ISO 8601で現在の日付を取得する必要があります

完全な日付に時間、分、秒、および小数秒を加えたもの: YYYY-MM-DDThh:mm:ss.sTZD (例: 1997-07-16T19:20:30. 45+01:00 )

参照: http://www.w3.org/TR/NOTE-datetime

さまざまなアプローチを試しましたが、正しいミリ秒とタイムゾーンの数字を取得できません:

DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSZZ");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
df.format(new Date());

JAVA の結果: 2012-11-24T21:19:27。758+0000

Apache の結果: 2012-11-24T21:19:27。758+00:00 (Apache Commons FastDateFormat)

4

2 に答える 2

6

実際、JDK には、ISO8601 の解析とフォーマットを処理するクラスがあります。

import javax.xml.bind.DatatypeConverter;

DatatypeConverter.printDateTime(new GregorianCalendar())
//2012-11-24T22:42:03.142+01:00
于 2012-11-24T21:42:59.517 に答える
2
于 2016-04-12T20:02:48.803 に答える