2016-08-19 6 views
0

このコードを使用して、DateTimeFormatterおよびZonedDateTimeのためにStringをJava Date Object.Which maven依存関係に変換する必要があります。私たちはDateTimeFormatterにどのような依存関係を使用できますか

Date date = Date.from(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss‌​.SSSZ").parse("2015-‌​01-12T05:00:00.000+0‌​000", ZonedDateTime::from).toInstant()) 

誰も私を助けてくださいすることができます...

+0

てみてください[ジョダ時間](https://mvnrepository.com/artifact/joda-time/joda-time)は、Java 7では – DimaSan

答えて

1
Edit:As @BasilBourque mentioned this new [Java8 Date api][1]. 
+0

、 \t 文字列「2015-01-12T05変換する方法:00:00.000+を0000 "にDateオブジェクトを保存しますか? – dev777

+0

DateTimeFormatter fmt = ISODateTimeFormat.dateTime(); LocalDate date = fmt.parseLocalDate(dateStr); – kuhajeyan

+1

いいえ、質問内のコードはJtime-Timeではなく、java.timeクラスを使用しています。 Joda-Timeチームは現在、java.timeへの移行についてアドバイスしています。 –

4

あなたはこれらのクラスを使用するようにJava8を使用する必要があり、それらはこのバージョンで追加されました。 Java8をまだ使用していない場合は、JodaTime(http://www.joda.org/joda-time/)にアクセスすることができますが、APIは少し異なります

Edit:JodaTimeを使用することはお勧めしませんが、彼のポストで。

+0

いいえ、Joda-Timeプロジェクトチームはjava.timeへの移行をアドバイスします。 Joda-Timeはメンテナンスモードになりました。Java 6および7へのバックポートについては、[私の回答](http://stackoverflow.com/a/39043704/642706)を参照してください。 –

+0

私はそれを知らなかったので、古い"JodaTimeのバージョンはjava7で構築されていますか? – lepak

+0

Joda-Timeは依然として積極的に維持されています。 Joda-Timeの最新バージョンにアップデートして、バグ修正とタイムゾーンのデータベースを更新してください(ゾーンルールは頻繁に変更されます)。便利なときにjava.timeの学習を開始し、それを使い始める。プロジェクトのさまざまな部分でJoda-Timeとjava.timeの両方を使用できます。いくつかのクラスが同じ名前を共有するので、 'import'ステートメントには注意してください。 –

1

このような名前のクラスは、java.timeおよびjava.time.formatパッケージのJDK 8+に含まれています。

2

ないジョダタイム

いくつかの他の回答はジョダタイムライブラリを示唆して間違っています。このソースコードは、Java 8以降に組み込まれたjava.timeクラスを使用しています。

java.time

はjava.timeフレームワークはJSR 310で定義されたジョダタイムの後継であり、かつジョダタイムを作成したのと同じ男、スティーブンColbourne率います。

バックポート

あなたがThreeTen-Backportプロジェクトを使用し、Javaの6または7を使用している場合は、質問に答えます。 java.timeの機能の多くはバックポートされていました。

現在、Mavenの依存関係は次のとおりです。

<dependency> 
    <groupId>org.threeten</groupId> 
    <artifactId>threetenbp</artifactId> 
    <version>1.3.2</version> 
</dependency> 

バックポートはさらにThreeTenABPプロジェクトでのAndroidのために適合されたこと。サンプルコードを簡略化することができることHow to use ThreeTenABP in an Android project

OffsetDateTime

を参照。標準ISO 8601形式の入力データは、OffsetDateTimeクラスで直接解析できます。したがって、書式設定パターンを定義する必要があります。

OffsetDateTime odt = OffsetDateTime.parse("2015-‌​01-12T05:00:00.000+0‌​000") ; 
java.util.Date utilDate = java.util.Date.from(odt.toInstant()) ; 

あなたが主張する場合は1行にしてください。

java.util.Date utilDate = java.util.Date.from(OffsetDateTime.parse("2015-‌​01-12T05:00:00.000+0‌​000").toInstant()); 

無効な入力については、もちろんDateTimeParseExceptionをキャッチします。

関連する問題