14.Java8日期时间工具类
发布人:shili8
发布时间:2024-12-26 03:02
阅读次数:0
**Java8 日期时间工具类**
Java8 中引入了新的日期时间 API,提供了更强大的功能和灵活性。这个工具类将展示如何使用这些新特性来处理日期时间相关的任务。
### 一、日期时间基本概念在 Java8 中,日期时间被表示为 `LocalDate`、`LocalTime` 和 `Instant` 等类型。其中:
* `LocalDate`: 表示一个日期(不含时间),如2022-07-25。
* `LocalTime`: 表示一个时间(不含日期),如14:30。
* `Instant`: 表示一个时间戳,表示从 Unix 纪元(1970 年1 月1 日)开始的秒数。
### 二、日期时间工具类下面是我们自定义的一个日期时间工具类:
javaimport java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
/**
* 日期时间工具类 */
public class DateTimeUtil {
/**
* 日期时间格式化器 */
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");
/**
* 获取当前日期 *
* @return 当前日期 */
public static LocalDate getCurrentDate() {
return LocalDate.now();
}
/**
* 获取当前时间 *
* @return 当前时间 */
public static LocalTime getCurrentTime() {
return LocalTime.now();
}
/**
* 获取当前时间戳 *
* @return 当前时间戳 */
public static Instant getCurrentInstant() {
return Instant.now();
}
/**
* 将日期转换为字符串 *
* @param date 日期 * @return 日期字符串 */
public static String dateToString(LocalDate date) {
return date.format(DATE_FORMATTER);
}
/**
* 将时间转换为字符串 *
* @param time 时间 * @return 时间字符串 */
public static String timeToString(LocalTime time) {
return time.format(TIME_FORMATTER);
}
/**
* 将时间戳转换为日期 *
* @param instant 时间戳 * @return 日期 */
public static LocalDate instantToDate(Instant instant) {
return instant.atDateReturn();
}
/**
* 将时间戳转换为时间 *
* @param instant 时间戳 * @return 时间 */
public static LocalTime instantToTime(Instant instant) {
return instant.atTimeReturn();
}
/**
* 将日期和时间合并成一个时间戳 *
* @param date 日期 * @param time 时间 * @return 时间戳 */
public static Instant combineDateAndTime(LocalDate date, LocalTime time) {
return date.atTime(time).toInstant();
}
/**
* 将日期和时间合并成一个时间戳(使用当前日期)
*
* @param time 时间 * @return 时间戳 */
public static Instant combineDateAndTime(LocalTime time) {
return getCurrentDate().atTime(time).toInstant();
}
/**
* 将时间戳转换为日期和时间 *
* @param instant 时间戳 * @return 日期和时间 */
public static LocalTimeAndDate instantToLocalTimeAndDate(Instant instant) {
return instant.atLocalTimeReturn();
}
}
### 三、使用示例下面是使用这个工具类的示例:
javapublic class Main {
public static void main(String[] args) {
// 获取当前日期 LocalDate currentDate = DateTimeUtil.getCurrentDate();
System.out.println("当前日期:" + DateTimeUtil.dateToString(currentDate));
// 获取当前时间 LocalTime currentTime = DateTimeUtil.getCurrentTime();
System.out.println("当前时间:" + DateTimeUtil.timeToString(currentTime));
// 获取当前时间戳 Instant currentInstant = DateTimeUtil.getCurrentInstant();
System.out.println("当前时间戳:" + currentInstant);
// 将日期转换为字符串 LocalDate date = LocalDate.of(2022,7,25);
String dateString = DateTimeUtil.dateToString(date);
System.out.println("日期字符串:" + dateString);
// 将时间转换为字符串 LocalTime time = LocalTime.of(14,30);
String timeString = DateTimeUtil.timeToString(time);
System.out.println("时间字符串:" + timeString);
// 将时间戳转换为日期 Instant instant = currentInstant;
LocalDate dateFromInstant = DateTimeUtil.instantToDate(instant);
System.out.println("日期:" + DateTimeUtil.dateToString(dateFromInstant));
// 将时间戳转换为时间 LocalTime timeFromInstant = DateTimeUtil.instantToTime(instant);
System.out.println("时间:" + DateTimeUtil.timeToString(timeFromInstant));
// 将日期和时间合并成一个时间戳 LocalDate date1 = LocalDate.of(2022,7,25);
LocalTime time1 = LocalTime.of(14,30);
Instant combinedInstant = DateTimeUtil.combineDateAndTime(date1, time1);
System.out.println("合并后的时间戳:" + combinedInstant);
// 将日期和时间合并成一个时间戳(使用当前日期)
LocalDate date2 = getCurrentDate();
LocalTime time2 = currentTime;
Instant combinedInstant2 = DateTimeUtil.combineDateAndTime(time2);
System.out.println("合并后的时间戳(使用当前日期):" + combinedInstant2);
// 将时间戳转换为日期和时间 instant = currentInstant;
LocalTimeAndDate localTimeAndDate = DateTimeUtil.instantToLocalTimeAndDate(instant);
System.out.println("日期和时间:" + DateTimeUtil.dateToString(localTimeAndDate.getDate()) + " " + DateTimeUtil.timeToString(localTimeAndDate.getTime()));
}
}
### 四、总结Java8 中的日期时间 API 提供了更强大的功能和灵活性。这个工具类展示了如何使用这些新特性来处理日期时间相关的任务,包括获取当前日期和时间、将日期转换为字符串、将时间戳转换为日期和时间等。

