我们可以将哪个maven依赖项用于DateTimeFormatter

时间:2016-08-19 07:25:35

标签: java maven

我使用此代码将String转换为java Date Object。我需要为DateTimeFormatter和ZonedDateTime使用maven依赖。

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())

任何人都可以帮助我......

4 个答案:

答案 0 :(得分:4)

您必须使用Java8来使用这些类,它们已在此版本中添加。如果你还没有使用Java8,你可以使用JodaTime(http://www.joda.org/joda-time/),但API有点不同

编辑:正如Basil Bourque所说,不建议使用JodaTime,而是使用他帖子中描述的backport。

答案 1 :(得分:2)

不是Joda-Time

其他一些答案在建议Joda-Time库时是不正确的。这个源代码显然使用了Java 8及更高版本中内置的java.time类。

java.time

java.time框架是Joda-Time的继承者,由JSR 310定义,由创建Joda-Time,Stephen Colbourne的同一个人领导。

背端口

要回答问题,如果您使用的是Java 6或7,请使用ThreeTen-Backport项目。许多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() ) ;

如果你坚持的话,或者在一行中。

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

当然,抓住DateTimeParseException获取无效输入。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

具有此类名称的类是java.timejava.time.format包中JDK 8+的一部分。