Как узнать количество дней между двумя датами? - PullRequest
0 голосов
/ 17 января 2019

Я хочу знать количество дней между двумя датами. Когда я использую следующий код, возникает ошибка. Как мне это исправить?

import org.joda.time.{DateTime, Days}

val start = "2018-10-01 00:00:00"
val end= "2018-10-12 00:00:00"

val from = DateTime.parse(start)
val to = DateTime.parse(end)

println(from + "<>" + to)

println("Number of days between 2 period: " + Days.daysBetween(from, to).getDays)

ОШИБКА:

java.lang.IllegalArgumentException: Invalid format: "2018-10-01 00:00:00" is malformed at " 00:00:00"

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Наконец я нашел решение:

val format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")

val from = format.parseDateTime("2018-10-01 00:00:00")
val to = format.parseDateTime("2018-10-12 00:00:00")

println("Number of days between 2 period: " + Days.daysBetween(from, to).getDays)
0 голосов
/ 17 января 2019

joda.time старое и устаревшее. Используйте java.time.

import java.time.LocalDate
import java.time.temporal.ChronoUnit.DAYS

DAYS.between(LocalDate.parse("2018-10-01")
            ,LocalDate.parse("2018-10-12"))  //res0: Long = 11
0 голосов
/ 17 января 2019

Вы можете попробовать что-то вроде этого

import java.time.LocalDate 
import java.time.format.DateTimeFormatter


val start = "2018-10-01"
val end= "2018-10-12"


val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
val oldDate = LocalDate.parse(start, formatter)

val newDate = LocalDate.parse(end, formatter)
println(newDate.toEpochDay() - oldDate.toEpochDay())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...