import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.text.ParsePosition
import java.util.{Calendar, Date, GregorianCalendar}
object DateUtils extends App {
//"hh" in pattern is for 12 hour time format and "aa" is for AM/PMvar dateTimeInGMT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
//Setting the time zone
dateTimeInGMT.setTimeZone(TimeZone.getTimeZone("GMT+8"))
//println(dateTimeInGMT.format(new Date()))val date = new DateUtil()
val curDate = date.getCurrentDate
val delta: Int = 0val lastOneDay: String = date.getCustomDate(curDate, -delta - 1)
val latestDay: String = date.getCustomDate(curDate, -delta)
println("curDate", curDate)
println("lastOneDay", lastOneDay)
println("latestDay", latestDay)
}
classDateUtil(){
val weeks: Int = 0//"hh" in pattern is for 12 hour time format and "aa" is for AM/PMvar dateTimeInGMT = new SimpleDateFormat("yyyy-MM-dd")
//Setting the time zone
dateTimeInGMT.setTimeZone(TimeZone.getTimeZone("GMT+8"))
def getCurrentDate(): String = {
val CurrentDate: String = dateTimeInGMT.format(new Date())
return CurrentDate
}
/**
* desc: 根据给定的日期字符串,获取该字符串对应的Date
* author: lihs
* date : 2018-10-17
*/
def strToDate(currentDate: String): Date = {
val pos = new ParsePosition(0)
val str2Date = dateTimeInGMT.parse(currentDate, pos)
return str2Date
}
/**
* desc: 获取指定日期的时间,返回格式为2016-08-07
* param: days
* -1 表示昨天的日期
* 0 表示今天的日期
* 1 表示明天的日期
* return
*/
def getCustomDate(currentDate: String, days: Int ): String = {
var calendar = Calendar.getInstance()
var dateTimeArray:Array[String] = currentDate.split("-")
val year: Int = Integer.parseInt(dateTimeArray(0))
val month: Int = Integer.parseInt(dateTimeArray(1))
val day: Int = Integer.parseInt(dateTimeArray(2))
calendar.set(year, month - 1, day)
val time= calendar.getTimeInMillis()// 给定时间与1970 年 1 月 1 日的00:00:00.000的差,以毫秒显示
calendar.setTimeInMillis(time + days * 1000 * 60 * 60 * 24)// 用给定的 long值设置此Calendar的当前时间值 val date = calendar.getTime()
val dateString: String = dateTimeInGMT.format(date)
return dateString
}
// desc: 获取当前日期与本周日相差的天数
def getMondayPlus(): Int = {
val cd: Calendar = Calendar.getInstance()
//获取今天是一周的第几天,周日是第一天,星期一是第二天//由于中国每周的周一是第一天,所以这里需要减1val dayOfWeek: Int = cd.get(Calendar.DAY_OF_WEEK) - 1if(dayOfWeek == 1){
return0
}else{
return1 - dayOfWeek
}
}
// desc : 获取相应周的周六0点的日期,若是0点以后的日期,需把4改成5
def getSaturday(): String = {
val mondayPlus: Int = new DateUtil().getMondayPlus()
var currentDate = new GregorianCalendar()
currentDate.add(Calendar.DATE, mondayPlus + 7 * weeks + 4)
val monday = currentDate.getTime()
val result: String = dateTimeInGMT.format(monday)
return result
}
}