Scala自定义日期时间转换工具类DateUtils

/**
  * 日期时间工具类
  *
  * @author L
  */
object DateUtils {
  val DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd")
  val DATE_KEY_FORMAT = new SimpleDateFormat("yyyyMMdd")
  val TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
  val TIME_MINUTE_FORMAT = new SimpleDateFormat("yyyyMMddHHmm")
  val GMT_FORMAT = new SimpleDateFormat("dd/MMM/yyyy hh:mm:ss", Locale.ENGLISH)

  /**
    * 获取当天日期 格式:yyyy-MM-dd
    *
    * @return 当天日期
    */
  def getTodayDate: String = {
    DATE_FORMAT.format(new Date)
  }

  /**
    * 获取昨天日期 格式:yyyy-MM-dd
    *
    * @return 昨天日期
    */
  def getYesterdayDate: String = {
    val cal = Calendar.getInstance
    cal.setTime(new Date)
    cal.add(Calendar.DATE, -1)
    DATE_FORMAT.format(cal.getTime)
  }

  /** 获取日期时间 格式:yyyy-MM-dd HH:mm:ss
    *
    * @param i :  当天为0,前一天为-1,后一天为1
    * @return yyyy-MM-dd  HH:mm:ss
    */
  def getDate(i: Int): String = {
    val cal = Calendar.getInstance
    cal.setTime(new Date)
    cal.add(Calendar.DATE, i)
    TIME_FORMAT.format(cal.getTimeInMillis)
  }

  /**
    * 格式化日期 date转日期
    *
    * @param date Date对象 Sat Sep 07 03:02:01 CST 2019
    * @return yyyy-MM-dd
    */
  def formatDate(date: Date): String = DATE_FORMAT.format(date)

  /**
    * 格式化日期 时间戳转日期
    *
    * @param timestamp 时间戳
    * @return yyyy-MM-dd
    */
  def formatDate(timestamp: Timestamp): String = DATE_FORMAT.format(timestamp * 1000)

  /**
    * 格式化日期 string转日期
    *
    * @param date "yyyy-MM-dd HH:mm:ss"
    * @return yyyy-MM-dd
    */
  def formatDate(date: String): String = DATE_FORMAT.format(DATE_FORMAT.parse(date))

  /**
    * 格式化时间 date对象转时间
    *
    * @param date Date对象 Sat Sep 07 03:02:01 CST 2019
    * @return yyyy-MM-dd HH:mm:ss
    */
  def formatTime(date: Date): String = TIME_FORMAT.format(date)


  /**
    * 格式化日期 date转yyyyMMdd日期
    *
    * @param date yyyy-MM-dd HH:mm:ss
    * @return yyyyMMdd
    */
  def formatKeyDate(date: Date): String = DATE_KEY_FORMAT.format(date)

  /**
    * 格式化日期 date string转yyyyMMdd日期,没有-间隔
    *
    * @param date "yyyy-MM-dd HH:mm:ss"
    * @return yyyyMMdd
    */
  def formatKeyDate(date: String): String = DATE_KEY_FORMAT.format(TIME_FORMAT.parse(date))

  /**
    * 将GMT日期格式转换为时间戳
    *
    * @param gmt 07/Sep/2019:00:07:39 +0800
    * @return timestamp
    */
  def formatGmtToTimestamp(gmt: String): Long = GMT_FORMAT.parse(gmt).getTime

  /**
    * 格式化时间戳 date string转时间戳
    *
    * @param date "yyyy-MM-dd HH:mm:ss"
    * @return timestamp
    */
  def formatDateToTimestamp(date: String): Long = DATE_FORMAT.parse(date).getTime

  /**
    * 将CMT日期格式转换为时间
    *
    * @param gmt 07/Sep/2019:00:07:39 +0800
    * @return yyyy-MM-dd HH:mm:ss
    */
  def formatGmtToTime(gmt: String): String = TIME_FORMAT.format(gmt)

  /**
    * 格式化时间 保留到分钟级
    *
    * @param date
    * @return yyyyMMddHHmm
    */
  def formatTimeMinute(date: Date): String = TIME_MINUTE_FORMAT.format(date)

  /**
    * 将时间格式化为0 时整的时间
    *
    * @param date yyyy-MM-dd HH:mm:ss
    * @return yyyy-MM-dd 00:00:00
    */
  def formatTimeZone(date: String): String = {
    val time = DATE_FORMAT.parse(date).getTime
    formatDate(time)
  }

  /**
    * 将时间转换为日期格式,格式化到月
    *
    * @param date yyyy-MM-dd HH:mm:ss
    * @return yyyy-MM
    */
  def formatDateToMonth(date: String): String = {
    val sdf = new SimpleDateFormat("yyyy-MM")
    sdf.format(TIME_FORMAT.parse(date))
  }

  /**
    * 获取小时
    *
    * @param date yyyy-MM-dd HH:mm:ss
    * @return HH
    */
  def formatHour(date: String): String = {
    val sdf = new SimpleDateFormat("HH")
    sdf.format(TIME_FORMAT.parse(date))
  }
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值