简体   繁体   English

如何找到两个日期之间的天数?

[英]How do I find the number of days between two dates?

I want to know the number of days between two dates.我想知道两个日期之间的天数。 When I use the following code it raises an error.当我使用以下代码时,它会引发错误。 How do I fix it?我如何解决它?

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)

ERROR:错误:

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

joda.time is old and outdated. joda.time已经过时了。 Use java.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

You can try something like this你可以试试这样的

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())

Finally I found solution:最后我找到了解决方案:

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM