有什么简单的方法可以将Java8的LocalDateTime转换成Joda的LocalDateTime吗?
其中一种方法是将其转换为字符串,然后从该字符串创建Joda的LocalDateTime。
发布于 2015-10-09 13:36:00
通过epoch millis (本质上是一个java.util.Date()
)进行转换:
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());
只有一行,但是很长,所以很“容易”?它们都是相对的。
发布于 2015-10-11 21:09:01
这两种localDate类型都由(year, month, date)
组成,因此只需复制这些值:
public static org.joda.time.LocalDate toJoda(java.time.LocalDate input) {
return new org.joda.time.LocalDate(input.getYear(),
input.getMonthValue(),
input.getDayOfMonth());
}
https://stackoverflow.com/questions/33030163
复制相似问题