`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]
}
- DataFormat.FULL_WITHOUTS.parse(DataFormat.FULL_WITHOUTS.format(date2),null).getTime
def main(args: Array[String]): Unit = {
println(getMinDiff(DataFormat.FULL_YMD.parse("2020-08-24",null)
,DataFormat.FULL_YMD.parse("2020-08-25",null)))
}
}
`