Scala:两个日期之间相差的月数

Raj*_*dip -2 java scala java-time

我有两个分别String包含值的变量"201703""201506"即值的格式为,"yyyyMM"但类型变量为String。我想使用Scala和JDK 8找出这两个日期在数月中的区别。

输入示例:

val x = "201506"
val y = "201703"
Run Code Online (Sandbox Code Playgroud)

所需的输出:

21    
Run Code Online (Sandbox Code Playgroud)

pet*_*ott 5

使用Java Time可以轻松完成此操作。

  import java.time.YearMonth
  import java.time.format.DateTimeFormatter
  import java.time.temporal.ChronoUnit._

  val date1 = "201506"
  val date2 = "201703"

  val formatter = DateTimeFormatter.ofPattern("yyyyMM")

  val ym1 = YearMonth.parse(date1, formatter)
  val ym2 = YearMonth.parse(date2, formatter)

  val months = ym1.until(ym2, MONTHS)
Run Code Online (Sandbox Code Playgroud)