工具类包含以下方法:
- - stringToDate: 将字符串转换为java.util.Date类型
- - dateToString: 将java.util.Date类型转换为字符串
- - stringToLocalDateTime: 将字符串转换为LocalDateTime类型
- - localDateTimeToString: 将LocalDateTime类型转换为字符串
- - dateToLocalDateTime: 将java.util.Date类型转换为LocalDateTime类型
- - localDateTimeToDate: 将LocalDateTime类型转换为java.util.Date类型
- - addDate: 在java.util.Date类型日期上增加或减少指定时间
- - addLocalDateTime: 在LocalDateTime类型日期上增加或减少指定时间
废话就不说了,直接上代码,建议收藏,实用的话帮忙点个赞!
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class DateUtil {
/**
* 将字符串转换为java.util.Date类型
*
* @param strDate 日期字符串
* @param format 日期格式
* @return java.util.Date类型日期
* @throws ParseException 解析异常
*/
public static Date stringToDate(String strDate, String format) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(strDate);
}
/**
* 将java.util.Date类型转换为字符串
*
* @param date java.util.Date类型日期
* @param format 日期格式
* @return 日期字符串
*/
public static String dateToString(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 将字符串转换为LocalDateTime类型
*
* @param strDate 日期字符串
* @param format 日期格式
* @return LocalDateTime类型日期
*/
public static LocalDateTime stringToLocalDateTime(String strDate, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(strDate, formatter);
}
/**
* 将LocalDateTime类型转换为字符串
*
* @param localDateTime LocalDateTime类型日期
* @param format 日期格式
* @return 日期字符串
*/
public static String localDateTimeToString(LocalDateTime localDateTime, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return localDateTime.format(formatter);
}
/**
* 将java.util.Date类型转换为LocalDateTime类型
*
* @param date java.util.Date类型日期
* @return LocalDateTime类型日期
*/
public static LocalDateTime dateToLocalDateTime(Date date) {
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
}
/**
* 将LocalDateTime类型转换为java.util.Date类型
*
* @param localDateTime LocalDateTime类型日期
* @return java.util.Date类型日期
*/
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
/**
* 在java.util.Date类型日期上增加或减少指定时间
*
* @param date java.util.Date类型日期
* @param field 时间类型,如Calendar.MINUTE,Calendar.HOUR,Calendar.DATE等
* @param amount 增加或减少的时间数值
* @return 增加或减少后的java.util.Date类型日期
*/
public static Date addDate(Date date, int field, int amount) {
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.setTime(date);
cal.add(field, amount);
return cal.getTime();
}
/**
* 在LocalDateTime类型日期上增加或减少指定时间
*
* @param localDateTime LocalDateTime类型日期
* @param field 时间类型,如ChronoUnit.MINUTES,ChronoUnit.HOURS,ChronoUnit.DAYS等
* @param amount 增加或减少
* @return 增加或减少后的LocalDateTime类型日期
*/
public static LocalDateTime addLocalDateTime(LocalDateTime localDateTime, int field, int amount) {
switch (field) {
case java.time.temporal.ChronoUnit.SECONDS:
return localDateTime.plusSeconds(amount);
case java.time.temporal.ChronoUnit.MINUTES:
return localDateTime.plusMinutes(amount);
case java.time.temporal.ChronoUnit.HOURS:
return localDateTime.plusHours(amount);
case java.time.temporal.ChronoUnit.DAYS:
return localDateTime.plusDays(amount);
case java.time.temporal.ChronoUnit.WEEKS:
return localDateTime.plusWeeks(amount);
case java.time.temporal.ChronoUnit.MONTHS:
return localDateTime.plusMonths(amount);
case java.time.temporal.ChronoUnit.YEARS:
return localDateTime.plusYears(amount);
default:
throw new IllegalArgumentException("无效时间类型");
}
}
}
以下是使用该工具类的示例代码:
import java.util.Date;
import java.time.LocalDateTime;
public class TestDateTimeUtils {
public static void main(String[] args) {
// 将字符串转换为Date类型
Date date = DateTimeUtils.stringToDate("2023-04-27 14:23:30", "yyyy-MM-dd HH:mm:ss");
System.out.println(date);
// 将Date类型转换为字符串
String dateString = DateTimeUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(dateString);
// 将字符串转换为LocalDateTime类型
LocalDateTime localDateTime = DateTimeUtils.stringToLocalDateTime("2023-04-27 14:23:30", "yyyy-MM-dd HH:mm:ss");
System.out.println(localDateTime);
// 将LocalDateTime类型转换为字符串
String localDateTimeString = DateTimeUtils.localDateTimeToString(localDateTime, "yyyy-MM-dd HH:mm:ss");
System.out.println(localDateTimeString);
// 将Date类型转换为LocalDateTime类型
LocalDateTime localDateTime2 = DateTimeUtils.dateToLocalDateTime(date);
System.out.println(localDateTime2);
// 将LocalDateTime类型转换为Date类型
Date date2 = DateTimeUtils.localDateTimeToDate(localDateTime2);
System.out.println(date2);
// 在Date类型日期上增加或减少指定时间
Date date3 = DateTimeUtils.addDate(date, java.util.Calendar.DATE, 1);
System.out.println(date3);
// 在LocalDateTime类型日期上增加或减少指定时间
LocalDateTime localDateTime3 = DateTimeUtils.addLocalDateTime(localDateTime, java.time.temporal.ChronoUnit.DAYS, 1);
System.out.println(localDateTime3);
}
}
由于当前日期是2023-04-27,因此以下是上面示例代码的输出结果: