在scala中将org.joda.time.LocalDateTime转换为java.time.LocalDateTime的最准确方法是什么?

时间:2017-02-09 06:27:21

标签: java scala datetime jodatime

我输出的库函数将来会返回一个随机java.time.LocalDateTime,需要转换为VARBINARY(MAX)

在不降低Scala准确性的情况下,最有效的方法是什么?

2 个答案:

答案 0 :(得分:1)

查看两者的javadoc,然后找到一种从java.time.LocalDateTime的getter方法创建org.joda.time.LocalDateTime的方法。

首先,要意识到org.joda.time.LocalDateTime不支持纳秒精度:

  

在内部,LocalDateTime使用一个毫秒级的值来表示本地日期时间。此值仅在内部使用,不会向应用程序公开。

因此,要创建java.time.LocalDateTime,请使用LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)

要从org.joda.time.LocalDateTime获取值,请使用:

getYear()
getMonthOfYear()
getDayOfMonth()
getHourOfDay()
getMinuteOfHour()
getSecondOfMinute()
getMillisOfSecond()

这很简单:阅读文档。

答案 1 :(得分:1)

import java.time.ZoneId

val jodaLocalDateTime = org.joda.time.LocalDateTime.now()
val javaLocalDateTime = java.time.LocalDateTime.ofInstant(jodaLocalDateTime.toDate.toInstant, ZoneId.systemDefault())