1、根据指定偏移值,获取从昨日开始往前推的第n天的日期
/**
* 根据指定偏移值,获取从昨日开始往前推的第n天的日期,如:<br>
* 今天是2020年9月4日,如果传入参数0表示得到昨天的日期,即2020年9月3日,传入参数1得到前天的日期9月2日
*
* @param day Int
* @param format String
* @return
*/
def getDateByOffset(day: Int, format: String = "yyyyMMdd"): Int = {
val dateFormat: SimpleDateFormat = new SimpleDateFormat(format)
val cal: Calendar = Calendar.getInstance()
cal.add(Calendar.DATE, -(day + 1))
val date = dateFormat.format(cal.getTime).toInt
date
}
2、根据指定偏移值,获取从指定日期开始往前推的第n天的日期
/**
* 根据指定偏移值,获取从指定日期开始往前推的第n天的日期,如:<br>
* 指定日期是20200903,如果传入参数0表示得到20200902,传入参数1得到前天的日期20200901
*
* @param input Int 指定的日期 20200903
* @param day Int
* @param format String
* @return
*/
def getDateDaysAgo(input: Int, day: Int, format: String = "yyyyMMdd"): Int = {
val dateFormat: SimpleDateFormat = new SimpleDateFormat(format)
val inputDate = dateFormat.parse(input.toString)
val cal: Calendar = Calendar.getInstance()
cal.setTime(inputDate)
cal.add(Calendar.DATE, -(day + 1))
val date = dateFormat.format(cal.getTime).toInt
date
}
3、时间戳(s)转日期
/**
* 时间戳(s)转日期
*
* @param timestamp eg:1599182997
* @return 20200904
*/
def getDateFromTimeStamp(timestamp: Long): String = {
val sdf = new SimpleDateFormat("yyyyMMdd")
sdf.format(new DefaultDate(timestamp * 1000))
}
4、时间字符串转毫秒时间戳
/**
* 时间字符串转毫秒时间戳
*
* @param tm eg:“2020-09-04 00:00:00”
* @return 1599148800000
*/
def tranTimeToLong(tm: String): Long = {
val fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val dt: DefaultDate = fm.parse(tm)
val tim: Long = dt.getTime
tim
}
5、输入某一天的日期,得到该天的起始时间戳和结束时间戳
/**
* 输入某一天的日期,得到该天的起始时间戳和结束时间戳
*
* @param date eg: 20200720
* @return (1595174400,1595260799)
*/
def getTimeStampsFromDate(date: Int): (String, String) = {
val fm = new SimpleDateFormat("yyyyMMdd HH:mm:ss")
val start = date.toString + " 00:00:00"
val end = date.toString + " 23:59:59"
val dtStart = (fm.parse(start).getTime / 1000).toString
val dtEnd = (fm.parse(end).getTime / 1000).toString
(dtStart, dtEnd)
}