编辑代码

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/PM
	var 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 = 0
val lastOneDay: String = date.getCustomDate(curDate, -delta - 1)
val latestDay: String = date.getCustomDate(curDate, -delta)

println("curDate", curDate)
println("lastOneDay", lastOneDay)   
println("latestDay", latestDay)
}

class DateUtil(){
  val weeks: Int = 0
 
     //"hh" in pattern is for 12 hour time format and "aa" is for AM/PM
	var 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()
      //获取今天是一周的第几天,周日是第一天,星期一是第二天
      //由于中国每周的周一是第一天,所以这里需要减1
      val dayOfWeek: Int = cd.get(Calendar.DAY_OF_WEEK) - 1
      if(dayOfWeek == 1){
        return 0 
      }else{
        return 1 - 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
     }
}