当前位置:实例文章 » 其他实例» [文章]14.Java8日期时间工具类

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 提供了更强大的功能和灵活性。这个工具类展示了如何使用这些新特性来处理日期时间相关的任务,包括获取当前日期和时间、将日期转换为字符串、将时间戳转换为日期和时间等。

相关标签:python开发语言
其他信息

其他资源

Top