工具类包含以下方法:
- - 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,因此以下是上面示例代码的输出结果: