1

2013-03-01T11:22:18.01Zによって生成されたタイムスタンプ文字列が strftime("%Y:%m:%dT%H:%M:%SZ")あり、これは Python にあります。

今、私は Java を使用SimpleDateFormatしてこのタイムスタンプを解析しようとしています。私が見つけた多くのサンプルコードは、これを行うようです:

String DATE_FORMAT = "YYYY-MM-DD'T'hh:mm:ss.ssZ"
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT)
sdf.setLenient(false)
sdf.parse(timestamp) <---- throws ParseException here

ただし、エラーダイアログが表示されます Unparseable date: "2013-03-01T11:22:18.01Z"

私はDATE_FORMATあちこちで微調整し、あらゆる種類のことを試してきましたが、かなり長い間同じ障害で立ち往生しています. これについては、stackoverflow コミュニティの力を借りる必要があるようです。

4

2 に答える 2

1

1) 2013-03-01T11:22:18.01 の正しいパターンは"yyyy-MM-dd'T'HH:mm:ss.SSS"(.01 がミリ秒の場合)

2) 2013-03-01T11:22:18.01Z の Z タイムゾーンは、-0800 形式 (RFC 822) のみを受け入れる SimpleDateFormat 'Z' では解析できません。'z' (一般的なタイム ゾーン) に変更しても、Z は解析されません。GMT である必要があります。

SimpleDateFormat API を参照してください。

3) 2013-03-01T11:22:18.01Z は非常に XSD の dateTime 形式http://www.schemacentral.com/sc/xsd/t-xsd_dateTime.htmlのように見え、java.xml の DatatypeConverter.parseDateTime で解析できます。 .bind パッケージ (Java 標準ライブラリ)

于 2013-06-12T22:17:52.227 に答える