首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Java8的LocalDateTime转换为Joda的LocalDateTime的简单方法

将Java8的LocalDateTime转换为Joda的LocalDateTime的简单方法
EN

Stack Overflow用户
提问于 2015-10-09 12:54:22
回答 2查看 31.9K关注 0票数 23

有什么简单的方法可以将Java8的LocalDateTime转换成Joda的LocalDateTime吗?

其中一种方法是将其转换为字符串,然后从该字符串创建Joda的LocalDateTime。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-09 13:36:00

通过epoch millis (本质上是一个java.util.Date())进行转换:

代码语言:javascript
复制
java.time.LocalDateTime java8LocalDateTime = java.time.LocalDateTime.now();

// Separate steps, showing intermediate types
java.time.ZonedDateTime java8ZonedDateTime = java8LocalDateTime.atZone(ZoneId.systemDefault());
java.time.Instant java8Instant = java8ZonedDateTime.toInstant();
long millis = java8Instant.toEpochMilli();
org.joda.time.LocalDateTime jodaLocalDateTime = new org.joda.time.LocalDateTime(millis);

// Chained
org.joda.time.LocalDateTime jodaLocalDateTime =
        new org.joda.time.LocalDateTime(
            java8LocalDateTime.atZone(ZoneId.systemDefault())
                              .toInstant()
                              .toEpochMilli()
        );

// One-liner
org.joda.time.LocalDateTime jodaLocalDateTime = new org.joda.time.LocalDateTime(java8LocalDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());

只有一行,但是很长,所以很“容易”?它们都是相对的。

票数 25
EN

Stack Overflow用户

发布于 2015-10-11 21:09:01

这两种localDate类型都由(year, month, date)组成,因此只需复制这些值:

代码语言:javascript
复制
public static org.joda.time.LocalDate toJoda(java.time.LocalDate input) {
    return new org.joda.time.LocalDate(input.getYear(),
                                       input.getMonthValue(),
                                       input.getDayOfMonth());
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33030163

复制
相关文章

相似问题

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