2017-02-09 4 views
-1

У меня есть функция библиотеки, которая возвращает случайный org.joda.time.LocalDateTime в будущем, который необходимо преобразовать в java.time.LocalDateTime.Какой самый точный способ конвертировать org.joda.time.LocalDateTime в java.time.LocalDateTime в scala?

Каков наиболее эффективный способ сделать это без потери точности в Scala?

+0

Scala или Java не имеет значения для этого вопроса вообще. –

ответ

1

Посмотрите на javadoc того и другого, а затем найдите способ создания java.time.LocalDateTime из методов геттера org.joda.time.LocalDateTime.

Во-первых, осознать, что org.joda.time.LocalDateTime не поддерживают нано-секундной точности:

Внутри LocalDateTime использует один миллисекунды на основе значения для представления локального DateTime. Это значение используется только внутри и не распространяется на приложения.

Для создания 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
import java.time.ZoneId 

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

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно того, почему и/или как этот код отвечает на вопрос, улучшает его долгосрочную ценность. –

+0

Это буквально две строки кода ... не уверены, какой контекст требуется здесь. –

Смежные вопросы