首页 > 编程语言 >Java日期时间操作工具类:DateTimeUtil

Java日期时间操作工具类:DateTimeUtil

时间:2024-07-07 18:55:20浏览次数:16  
标签:return 日期 static Java LocalDate public DateTimeUtil

在Java开发中,处理日期和时间是一个常见的需求,无论是数据库查询、日志记录还是业务逻辑处理,都离不开对日期时间的精确操作。Java自JDK 8起引入了新的日期时间API,如java.time包下的LocalDate, LocalTime, LocalDateTime, ZonedDateTime等,这些API相比之前的java.util.Datejava.text.SimpleDateFormat提供了更强大、更安全、更易用的功能。本文将介绍一个基于java.time包构建的日期时间操作工具类——DateTimeUtil,并演示其主要功能。

DateTimeUtil工具类代码

Java

深色版本

1import java.time.*;
2import java.time.format.DateTimeFormatter;
3import java.time.temporal.TemporalAdjusters;
4
5public class DateTimeUtil {
6
7    private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
8    private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
9
10    // 获取当前日期时间
11    public static LocalDateTime now() {
12        return LocalDateTime.now();
13    }
14
15    // 获取当前日期
16    public static LocalDate today() {
17        return LocalDate.now();
18    }
19
20    // 将字符串转换为LocalDate
21    public static LocalDate parseDate(String dateStr) {
22        return LocalDate.parse(dateStr, DATE_FORMATTER);
23    }
24
25    // 将字符串转换为LocalDateTime
26    public static LocalDateTime parseDateTime(String dateTimeStr) {
27        return LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
28    }
29
30    // 将LocalDate转换为字符串
31    public static String format(LocalDate date) {
32        return date.format(DATE_FORMATTER);
33    }
34
35    // 将LocalDateTime转换为字符串
36    public static String format(LocalDateTime dateTime) {
37        return dateTime.format(DATETIME_FORMATTER);
38    }
39
40    // 计算两个日期之间的天数差
41    public static long betweenDays(LocalDate startDate, LocalDate endDate) {
42        return ChronoUnit.DAYS.between(startDate, endDate);
43    }
44
45    // 计算两个日期时间之间的秒数差
46    public static long betweenSeconds(LocalDateTime startDateTime, LocalDateTime endDateTime) {
47        return ChronoUnit.SECONDS.between(startDateTime, endDateTime);
48    }
49
50    // 获取指定日期的最后一天
51    public static LocalDate getLastDayOfMonth(LocalDate date) {
52        return date.with(TemporalAdjusters.lastDayOfMonth());
53    }
54
55    // 获取指定日期的下一个月的第一天
56    public static LocalDate getFirstDayOfNextMonth(LocalDate date) {
57        return date.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
58    }
59}
使用DateTimeUtil工具类
  1. 获取当前日期时间

     Java 

    深色版本

    1LocalDateTime currentDateTime = DateTimeUtil.now();
    2System.out.println("Current DateTime: " + DateTimeUtil.format(currentDateTime));
  2. 日期字符串转换

     Java 

    深色版本

    1LocalDate parsedDate = DateTimeUtil.parseDate("2023-03-15");
    2System.out.println("Parsed Date: " + DateTimeUtil.format(parsedDate));
  3. 计算日期差

     Java 

    深色版本

    1LocalDate startDate = LocalDate.of(2023, 1, 1);
    2LocalDate endDate = LocalDate.of(2023, 1, 31);
    3long daysBetween = DateTimeUtil.betweenDays(startDate, endDate);
    4System.out.println("Days Between: " + daysBetween);
  4. 获取月份的最后一天和下月第一天

     Java 

    深色版本

    1LocalDate today = DateTimeUtil.today();
    2LocalDate lastDayOfMonth = DateTimeUtil.getLastDayOfMonth(today);
    3LocalDate firstDayOfNextMonth = DateTimeUtil.getFirstDayOfNextMonth(today);
    4System.out.println("Last Day of Month: " + DateTimeUtil.format(lastDayOfMonth));
    5System.out.println("First Day of Next Month: " + DateTimeUtil.format(firstDayOfNextMonth));
总结

DateTimeUtil工具类封装了java.time包下的常用日期时间操作,简化了日期时间的处理流程,提高了代码的可读性和可维护性。通过使用这个工具类,开发者可以更专注于业务逻辑的实现,而不必担心日期时间处理的细节。希望这个工具类能够帮助你在Java开发中更高效、更准确地处理日期时间相关的需求。

标签:return,日期,static,Java,LocalDate,public,DateTimeUtil
From: https://blog.csdn.net/h356363/article/details/140244435

相关文章

  • Java String操作工具类:StrUtil
    在日常的Java开发中,字符串(String)是最常用的数据类型之一。无论是数据处理、文本分析还是界面展示,都离不开对字符串的精细操作。然而,尽管Java标准库提供了丰富的字符串处理方法,但在实际项目中,我们常常需要一些更高级、更便捷的字符串操作功能。为此,本文将介绍一个自定义的字符串......
  • 【Java探索之旅】多态:重写、动静态绑定
    文章目录......
  • 【Java探索之旅】初识多态_概念_实现条件
    文章目录......
  • java面向对象
    java面向对象面向对象程序设计OOP(ObjectOrientedProgramming)对象的特征——属性对象的每个属性都有特定的值对象的操作——方法对象:描述客观事物的具体实体类class(自定义数据类型)引用数据类性:一组具有相同属性的对象集合是对象的抽象,对象是类的具体publiccla......
  • Java基础——继承与多态
    Java基础——继承与多态方法重写构造方法不能被重写publicclassFpet{Stringname;inthealth;intlove;publicvoidprint(){System.out.println("宠物的自白:");System.out.println("我的名字是"+this.getName()+"健康度是"+t......
  • Java--阶段练习(汽车租赁)
    阶段练习面向对象的设计过程1.分析需求2.找名词(类,属性)父类:汽车:品牌,车牌,日租金子类:轿车:型号客车:座位数汽车业务类汽车租赁管理类3.动词(方法)汽车类(计算租金)汽车业务类(初始化车信息,提供租赁服务)汽车租赁管理类(入口和系统界面)4.优化设计父子类的关系:汽车类—>......
  • SpringBoot-校园疫情防控系统-93033(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP
    springboot校园疫情防控系统摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对校园疫情防控等问题,对校园疫情防控进行研究分析,然后开发设计出......
  • Java虚拟机(JVM):深入理解与性能调优
    引言Java虚拟机(JVM)是Java平台的核心组件,它使得Java程序具有跨平台运行的能力。JVM不仅负责执行Java字节码,还管理着内存分配、垃圾回收等关键任务。深入理解JVM的工作原理对于进行有效的性能调优至关重要。本文将详细介绍JVM的工作原理,包括内存模型、垃圾回收机制,并分享一些实......
  • 基于Django+微信小程序的旅游资源信息管理系统(免费领源码+数据库)可做计算机毕业设计JA
    django广西-东盟旅游资源信息管理系统小程序摘 要在社会快速发展和人们生活水平提高的影响下,旅游产业蓬勃发展,旅游形式也变得多样化,使旅游资源信息的管理变得比过去更加困难。依照这一现实为基础,设计一个快捷而又方便的基于小程序的旅游资源信息管理系统是一项十分重要并且......
  • java 如何暴露header给前端
    在Java中,将HTTP响应的Header暴露给前端通常涉及在Web应用程序的服务器端代码中设置这些Header。这可以通过不同的JavaWeb框架来实现,比如SpringMVC、JAX-RS(Jersey)、Servlet等。这里,我将提供一个使用SpringMVC框架的示例,因为它在JavaWeb开发中非常流行且易于理解。1.示例:使用S......