Javaでjava.time.InstantにISO 8601ズールー族の文字列から変換日8

Surendrapnday:

私はjava.time.Instantに文字列の日付形式を変換したいです

日付を解析している間、私は例外を取得しています。

 java.lang.IllegalArgumentException: Too many pattern letters: s

私は、文字列から日付への最初の変換のためのコードの下に使用しています。

    String string = "2018-07-17T09:59:51.312Z";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY-MM-DD'T'hh:mm:ss.sssZ", Locale.FRANCE);
    LocalDate date = LocalDate.parse(string, formatter);
    System.out.println(date);

:私は、「タイムスタンプ」を変換したい"2018-07-17T09:59:51.312Z"ISO 8601形式でフォーマット時にYYYY-MM-DDThh:mm:ss.sssZUTCタイムゾーンインチ

チェック日付への変換Java文字列は、しかし、動作していません。

バジルボーク:

TL; DR

java.time.Instantに変換、文字列の日付形式

書式設定のパターンをスキップします。ただ、解析します。

Instant.parse( "2018-07-17T09:59:51.312Z" )

ISO 8601

示すようにはい、あなたは間違ったフォーマットパターンを使用し最初の回答

しかし、あなたは、フォーマットパターンを指定する必要はありませんすべてのを。あなたの入力文字列が標準であるISO 8601形式。java.timeの文字列を生成/解析するときのクラスは、デフォルトではISO 8601の形式を使用します。

Z最後には意味UTCを、そして「ズールー」と発音されます。

Instant instant = Instant.parse( "2018-07-17T09:59:51.312Z" ) ;

java.time

java.timeのフレームワークは、Java 8に組み込まれており、後にされています。これらのクラスは面倒古い取って代わるレガシーのような日付時刻クラスをjava.util.DateCalendar、& SimpleDateFormat

ジョダタイムプロジェクトは、今でメンテナンスモードへの移行をアドバイスjava.timeのクラス。

より多くを学ぶために、参照Oracleのチュートリアルをそして、多くの例および説明のためにスタックオーバーフローを検索します。仕様は、JSR 310

あなたは交換してもよいjava.timeのデータベースにオブジェクトを直接。使用するJDBCドライバに準拠するJDBC 4.2以降。文字列を使用する必要はありません、が不要java.sql.*なクラス。

どこjava.timeクラスを取得するには?

ThreeTen-エクストラプロジェクトでは、追加のクラスでjava.timeを拡張します。このプロジェクトは、java.timeに将来の追加のための試験場です。あなたはここにいくつかの有用なクラスのような見つけることがIntervalYearWeekYearQuarter、および多くを

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=172520&siteId=1