1、代码:
package core.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test {
public static void main(String[] args) {
//(1)获取当前系统时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentdate=new Date();
String systime= format.format(currentdate);
System.out.println("当前系统时间:~~~~~~~~~"+systime);
//(2)获取当前系统时间的前1天的时间
String curtime=getBeforeOneDay(currentdate);
System.out.println("当前系统时间的前一天的时间------:"+curtime);
//(3)获取当前系统时间的前1天的时间的前1秒时间
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse(curtime,df);
String times=getOneSecondsTime(ldt);
System.out.println("当前系统时间的前1天的时间的前1秒时间=====:"+times);
}
/**
* 获取当前系统时间的前一天时间
* @param dateStr
* @return Date
* @author xiaozhi
* @date 2019.10.30
* @version: 1.0
* @return
*/
public static String getBeforeOneDay(Date currentdate) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentdate);
calendar.add(Calendar.DAY_OF_MONTH, -1);
currentdate = calendar.getTime();
String dayTime=format.format(currentdate);
return dayTime;
}
/**
* 获取当前系统时间的前1秒时间
* @param dateStr
* @return Date
* @author xiaozhi
* @date 2019.10.30
* @version: 1.0
* @return
*/
public static String getOneSecondsTime(LocalDateTime localDateTime) {
DateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dates = Date.from(localDateTime.atZone( ZoneId.systemDefault()).toInstant());
Calendar c = new GregorianCalendar();
c.setTime(dates);//设置参数时间
c.add(Calendar.SECOND,-1);//把日期往后增加SECOND 秒.整数往后推,负数往前移动
dates=c.getTime(); //这个时间就是日期往后推一天的结果
String secondsTime = df.format(dates);
return secondsTime;
}
}
2、效果截图: