获取java时间 小时_Java获取当前系统时间的前N小时时间

Java获取当前系统时间的前N小时时间

先说一下代码中存在的一个问题

/**

* 当前时间向推几小时

* @param ihour 小时

* @return String

*/

public static String getBeforeByHourTime(int ihour){

String returnstr = "";

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

returnstr = df.format(calendar.getTime());

return returnstr;

}

但是这个代码存在问题,假如是凌晨1点向前推3小时就不对了,

所以存在着问题,采用以下的方法就能很好解决

/**

* 当前时间向推几小时

* @param ihour 小时

* @return String

*/

public static String dateRoll(int ihour) {

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

//(1)获取当前时间

LocalDateTime date = LocalDateTime.now();

//(2)获取当前时间的前几小时时间

LocalDateTime localDateTime = date.minusHours(ihour);

return dateTimeFormatter.format(localDateTime);

}

以上的代码就能很好的解决问题,要是凌晨1点向前推3小时就是前一天的23点.

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页