scala 获得两个日期之间的时间序列,左闭右开

/**
   * 给定开始日期、结束日期,得到之间的时间序列
   * 左闭右开
   * 最细粒度到天
   * 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
  }

参考资料:
https://blog.youkuaiyun.com/I_peter/article/details/109776383?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.searchformbaiduhighlight&spm=1001.2101.3001.4242

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值