直接调这个方法就可以
package emg.util
import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
/**
* @Auther: sss
* @Date: 2018/12/26 18:15
* @Description:
*/
object Time {
def main(args: Array[String]): Unit = {
val calendar: Calendar = Calendar.getInstance()
println(getFrontHour())
}
def getFrontHour(): String = {
var date: Date = new Date()
val df = new SimpleDateFormat("yyyy-MM-dd-HH")
val calendar: Calendar = Calendar.getInstance()
calendar.setTime(df.parse(df.format(date)))
calendar.add(Calendar.HOUR_OF_DAY, -1)
val currentTimes = df.format(calendar.getTime)
currentTimes
}
}
这样子写不需要考虑一个问题 如下:
刚开始我的写法是先获取当前年 再获取当前月 再获取当前天 再是小时 上面这个方法是直接获取全部年-月 -日-时
这样子比如说按照当前日期读取前一个小时的目录,到了晚上0点读取的是昨天23点的数据,就得自己去判断是不是到0点了,如果是就得改变天数(天数-1)才对,不然会一直读取不到23点的数据
测试代码:
//1 HH是24小时制
val df = new SimpleDateFormat("yyyy-MM-dd HH")
val calendar: Calendar = Calendar.getInstance()
calendar.setTime(df.parse("2018-03-01 0"))
calendar.add(Calendar.HOUR_OF_DAY,-1)
println(df.format(calendar.getTime))
//2 hh是12小时制
val df = new SimpleDateFormat("yyyy-MM-dd hh")
val calendar: Calendar = Calendar.getInstance()
calendar.setTime(df.parse("2018-03-01 0"))
calendar.add(Calendar.HOUR_OF_DAY,-1)
println(calendar.get(Calendar.YEAR)+"/"+calendar.get(Calendar.MONTH)+"/"+calendar.get(Calendar.DAY_OF_MONTH)+" "+calendar.get(Calendar.HOUR_OF_DAY))