java获取当前时间前几个小时的时间
getBeforeHourTime和单独计算时间戳的输出一致。
所以简单的获取,用时间戳计算一下就好。
public static void main(String[] args) {
Long start = System.currentTimeMillis();
System.out.println(timeStamp2Date(start + ""));
System.out.println(getBeforeHourTime(1));
start = start - 1000 * 60 * 60;
System.out.println(getNowTime(start));
System.out.println("完成");
}
/**
* 获取当前时间前几个小时的时间
*
* @param ihour
* @return
*/
public static String getBeforeHourTime(int ihour) {
String returnstr = "";
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
returnstr = sdf.format(calendar.getTime());
return returnstr;
}
/**
* 时间戳转具体时间
* @param time
* @return
*/
public static String timeStamp2Date(String time) {
Long timeLong = Long.parseLong(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 要转换的时间格式
Date date;
try {
date = sdf.parse(sdf.format(timeLong));
return sdf.format(date);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}