首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将java.time.temporal.Temporal转换为java.util.Date

将java.time.temporal.Temporal转换为java.util.Date
EN

Stack Overflow用户
提问于 2016-10-24 23:10:50
回答 3查看 12.4K关注 0票数 6

如何将java.time.temporal.Temporal实例转换为java.util.Date实例?

代码语言:javascript
复制
java.time.temporal.Temporal someTemporal = Instant.now();
java.util.Date some Temporal = x(someTemporal);

我看过Oracle's legacy time trail documentation,但找不到合适的解决方案。

EN

回答 3

Stack Overflow用户

发布于 2016-10-24 23:44:02

我强烈建议省略对(太)通用接口java.time.temporal.Temporal的任何引用,只需这样做:

代码语言:javascript
复制
java.util.Date some = java.util.Date.from(Instant.now());

使用接口Temporal几乎与使用java.lang.Object类似。你应该尽可能的具体(特别是在日期和时间的上下文中)。甚至JSR-310-API officially outputs a warning

此接口是框架级别的接口,不应在应用程序代码中广泛使用。相反,应用程序应该创建和传递具体类型的实例,比如LocalDate。原因有很多,其中一部分原因是此接口的实现可能在ISO以外的日历系统中。有关这些问题的更全面讨论,请参阅ChronoLocalDate。

票数 9
EN

Stack Overflow用户

发布于 2016-10-24 23:19:08

在底部,它有:

虽然java.time.format.DateTimeFormatter提供了设置日期和时间值格式的强大机制,但您也可以将java.time基于时间的类直接用于java.util.Formatter和String.format,使用与java.util date和time类相同的基于模式的格式设置。

看起来您可能想要在documentation here中使用DateTimeFormatter类,并使用类似于下面的示例:

代码语言:javascript
复制
LocalDate date = LocalDate.now();
String text = date.format(formatter);
LocalDate parsedDate = LocalDate.parse(text, formatter);
票数 -1
EN

Stack Overflow用户

发布于 2017-08-11 04:29:56

我认为你问错了这个问题。相反,我相信你想知道如何使用泛型接口将任何java.time具体类(例如Instant、LocalDate )转换为Date。我相信TemporalAccessor就是那个接口。

代码语言:javascript
复制
@Test
public void convertTemportalAccessorTypeToDate() throws Exception {
    Instant instant = Instant.now();
    Date expected = Date.from( instant );
    TemporalAccessor now = instant;

    long nanos = now.getLong( ChronoField.NANO_OF_SECOND );
    long epochSeconds = now.getLong( ChronoField.INSTANT_SECONDS );
    Date date1 = Date.from( Instant.ofEpochSecond( epochSeconds, nanos ) );
    assertThat( date1, is( expected ));
}

也就是说,具体类型实际上必须支持ChronoField,如果不支持,似乎会抛出UnsupportedTemporalTypeException,所以可能会包装在try catch中。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40221774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档