方式一(使用LocalDateTime):
使用LocalDateTime
LocalDateTime now = LocalDateTime.now();
// 获取上一个小时
LocalDateTime lastHour = now.minusHours(1);
// 设置分钟和秒为59
lastHour = lastHour.withMinute(59).withSecond(59);
// 格式化时间
String formattedTime = lastHour.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(formattedTime);
方式二(使用LocalDateTime):
使用LocalDateTime
LocalDateTime now = LocalDateTime.now();
// 获取上个小时的时间
LocalDateTime lastHour = now.minusHours(1);
// 设置秒数为59
lastHour = lastHour.withSecond(59);
// 设置分钟数为59
lastHour = lastHour.withMinute(59);
// 设置毫秒数为999
lastHour = lastHour.withNano(999_000_000);
// 格式化时间
String formattedTime = lastHour.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(formattedTime);
方式三(使用Calendar):
使用Calendar
Calendar cal = Calendar.getInstance();
// 获取上一个小时
cal.add(Calendar.HOUR_OF_DAY, -1);
// 设置分钟和秒为59
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
// 格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(cal.getTime());
System.out.println(formattedTime);
方式四(使用Date):
使用Date
Date date = new Date();
// 获取上一个小时
date.setTime(date.getTime() - 3600 _000L);
// 设置分钟和秒为59
date.setMinutes(59);
date.setSeconds(59);
// 格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(date);
System.out.println(formattedTime);