测试时间转换
2个串儿检查例子
结果:
package com.slsx.server.controller;
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class test {
public static void main(String[] args) {
LocalDateTime startLocalDateTime=null;
LocalDateTime endLocalDateTime=null;
String startTimestr="2022-08-25 17:02:00";
String endTimestr="2022-08-25 17:03:10";
String pattern="yyyy-MM-dd HH:mm:ss";
//1-start
Boolean result=dateStrIsValid(startTimestr,pattern);
System.out.println("开始时间:"+result);
if(result){
startLocalDateTime =parseStringToDateTime(startTimestr,pattern);
System.out.println(startLocalDateTime);
}
//2-end
Boolean endresult=dateStrIsValid(endTimestr,pattern);
System.out.println("end时间:"+endresult);
if(endresult){
endLocalDateTime =parseStringToDateTime(endTimestr,pattern);
System.out.println(endLocalDateTime);
}
//计算总秒数22222
Duration duration = Duration.between(startLocalDateTime,endLocalDateTime);
long days = duration.toDays(); //相差的天数
long hours = duration.toHours();//相差的小时数
long minutes = duration.toMinutes();//相差的分钟数
long millis = duration.toMillis();//相差毫秒数
System.out.println(millis/1000);//相隔秒数
if(millis>1){
System.out.println("允许设置时间");
}else {
System.out.println("结束时间不能小于开始时间");
}
}
public static LocalDateTime parseStringToDateTime(String time, String format) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(time, df);
}
public static boolean dateStrIsValid(String oriDateStr, String pattern) {
if (StringUtils.isBlank(oriDateStr) || StringUtils.isBlank(pattern)) {
return false;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
Date date = dateFormat.parse(oriDateStr);
return oriDateStr.equals(dateFormat.format(date));
} catch (ParseException e) {
return false;
}
}
}