/**
* 给定开始日期、结束日期,得到之间的时间序列
* 左闭右开
* 最细粒度到天
* println(getBetweenDaySeq("2021-01-03","2021-01-06","yyyy-MM-dd").toList.toString())
*
* @param bTime 开始日期
* @param eTime 结束日期
* @param format
* @return
*/
def getBetweenDaySeq(bTime: String, eTime: String, format: String = "yyyy-MM-dd HH:mm:ss"): ArrayBuffer[String] = {
val betweenDaySeq = ArrayBuffer[String]()
try {
val simpleDateFormat = new SimpleDateFormat(format)
val bDateFormat = simpleDateFormat.parse(bTime)
val eDateFormat = simpleDateFormat.parse(eTime)
val outSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")
val bCalender = java.util.Calendar.getInstance()
val eCalender = java.util.Calendar.getInstance()
bCalender.setTime(bDateFormat)
eCalender.setTime(eDateFormat)
val bYear = bCalender.get(Calendar.YEAR)
val bMonth = bCalender.get(Calendar.MONTH)
val bDay = bCalender.get(Calendar.DATE)
val eYear = eCalender.get(Calendar.YEAR)
val eMonth = eCalender.get(Calendar.MONTH)
val eDay = eCalender.get(Calendar.DATE)
bCalender.set(bYear, bMonth, bDay, 0, 0, 0)
eCalender.set(eYear, eMonth, eDay, 0, 0, 0)
while (bCalender.before(eCalender)) {
betweenDaySeq.append(outSimpleDateFormat.format(bCalender.getTime))
bCalender.add(Calendar.DAY_OF_YEAR, 1)
}
// 是否包含右侧边界,解除注释将变为左闭右闭
// betweenDaySeq.append(outSimpleDateFormat.format(eCalender.getTime))
}
catch {
case ex: Exception => ex.printStackTrace() // 打印到标准err
}
betweenDaySeq
}
scala 获得两个日期之间的时间序列,左闭右开
最新推荐文章于 2024-06-23 09:39:15 发布