我在 Scala 中有两个格式为“yyyy-MM-dd”的日期,它们都是一个月的最后一天(2015-05-31),我想找到它们之间的月份差异。我有以下代码,但要找到月差并不容易。
val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
val diff = format.parse(date1).getTime - format.parse(date2).getTime
val days = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS)
Run Code Online (Sandbox Code Playgroud)
有什么更好的建议吗?
如果您使用的是 Java 8 或更高版本,则可以使用java.time包中的新日期和时间 API 。
首先,创建两个LocalDate对象:
import java.time._
val s1 = LocalDate.parse("2012-05-31")
val s2 = LocalDate.parse(otherDate)
Run Code Online (Sandbox Code Playgroud)
那么你有两个选择。第一个选项,ChronoUnit直接使用对象:
import java.time.temporal._
ChronoUnit.MONTHS.between(s1, s2) // the answer you are looking for
Run Code Online (Sandbox Code Playgroud)
或者创建一个Period对象,用于表示时间段。
val p = Period.between(s1, s2)
p.getMonths() // returns the number of months between the two dates
Run Code Online (Sandbox Code Playgroud)
本Period类有其他的方法,比如getDays(),使您能够获得关于两个日期之间的时间段的详细信息。
| 归档时间: |
|
| 查看次数: |
6174 次 |
| 最近记录: |