关于日期解析Scala语言

`package main.scala.com.web.zhangyong168.cn.spark.date;

import java.text.SimpleDateFormat;
import java.util.Date;

/**

  • @author 张勇

  • @version 0.0.1

  • @description 日期类型枚举

  • @date 2020年08月25日下午17:50:39
    */
    public enum DataFormat {
    YYYYMMDD("yyyyMMdd"),
    YYYYMMDDHHMM("yyyyMMddHHmm"),
    FULL_YMD("yyyy-MM-dd"),
    FULL_WITHOUTS("yyyy-MM-dd HH:ss"),
    FULL("yyyy-MM-dd HH:mm:ss"),
    ;

    //日起格式
    private final String format;

    /**

    • 构造函数
    • @param format 日期格式
      */
      DataFormat(String format) {
      this.format = format;
      }

    /**

    • 日期格式化
    • @param date 日期
    • @return 日期格式化成字符串
      */
      public String format(Date date) {
      return (new SimpleDateFormat(this.format)).format(date);
      }

    /**

    • 日期格式化
    • @param timestamp
    • @return 日期格式化成字符串
      */
      public String format(long timestamp) {
      return (new SimpleDateFormat(this.format)).format(timestamp);
      }

    /**

    • 日期格式解析
    • @param value 日期字符串
    • @param defaultVal 默认值
    • @return 解析日期
      */
      public Date parse(String value, Date defaultVal) {
      try {
      return (new SimpleDateFormat(this.format)).parse(value);
      } catch (Exception e) {
      return defaultVal;
      }
      }
      }
      `

`package main.scala.com.web.zhangyong168.cn.spark.date

import java.text.SimpleDateFormat
import java.util.{Calendar, Date}

/** *
*

  • @description 日期工具类
  • @author 张勇
  • @version 0.0.1
  • @date 2020年08月25日下午17:23:39
    /
    object DateUtils {
    val cal: Calendar = Calendar.getInstance()
    val df: SimpleDateFormat = new SimpleDateFormat( "yyy-MM-dd HH:mm:ss" )
    /
    *
    • 获取本月的最后一天
    • @return
      */
      def getNowNonthEnd(): String = {
      cal.set( Calendar.DATE, 1 )
      cal.roll( Calendar.DATE, -1 )
      df.format( cal.getTime )
      }

/**

  • 获取本月的第一天
  • @return
    */
    def getNowNonthStart(): String = {
    cal.set( Calendar.DATE, 1 )
    df.format( cal.getTime )
    }

/**

  • 获取上个月的第一天
  • @return
    */
    def getLastNonthStart(): String = {
    cal.add(Calendar.MONTH, -1 ) //-1获取的是上个月 1代表下个月
    cal.set( Calendar.DAY_OF_MONTH, 1 ) //某个月的多少天
    df.format( cal.getTime )
    }

/**

  • 获取上个月的最后一天
  • @return
    */
    def getLastNonthEnd(): String = {
    cal.set( Calendar.DATE, 0 )
    df.format( cal.getTime )
    }

/**

  • 获取2个时间之间的天数之差
  • @param date1 日期1
  • @param date2 日期2
  • @return
    */
    def getMinDiff(date1:Date,date2:Date):Int={
    (Math.abs(
    DataFormat.FULL_WITHOUTS.parse(DataFormat.FULL_WITHOUTS.format(date1),null).getTime
    • DataFormat.FULL_WITHOUTS.parse(DataFormat.FULL_WITHOUTS.format(date2),null).getTime
      )/(1000*60)/1440).asInstanceOf[Int]
      }

def main(args: Array[String]): Unit = {

println(getMinDiff(DataFormat.FULL_YMD.parse("2020-08-24",null)
  ,DataFormat.FULL_YMD.parse("2020-08-25",null)))

}

}
`

你若盛开,蝴蝶自来
原文地址:https://www.cnblogs.com/zy168/p/13561860.html