工具類包含以下方法:
- - 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,是以以下是上面示例代碼的輸出結果: