2

2013-10-07T23:59:51.205-07:00これをJavaの日付オブジェクトに変換したい文字列があります。解析エラーが発生しています。

date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse("2013-10-07T23:59:51.205-07:00");
4

6 に答える 6

4

試す

date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
                 .parse("2013-10-07T23:59:51.205-0700");

Z はリテラルではなく、タイムゾーンにはコロンがありません

http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.htmlの例を参照してください。

java7 が使用されている場合は、Zに置き換えることがXでき、タイムゾーンにはコロンを含めることができます

于 2013-10-23T08:36:28.323 に答える
4

Z引用符で囲まないでください。Z指定されたタイムゾーンではうまくいかないと思います。Java 7 より前は、コロンを間に挟んで ISO 8601 形式のタイムゾーンを解析する形式はなかったと思います。-0700代わりに使用する必要があります。

ただし、Java 7 以降では、代わりに を使用してISO 8601 形式のタイムゾーンを解析するオプションがあります。については、javadoc を参照してください。次の形式を使用してください。XZSimpleDateFormat

// This would work from Java 7 onwards
date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX")    
                     .parse("2013-10-07T23:59:51.205-07:00");
于 2013-10-23T08:37:06.943 に答える