java日期操作工具类(获取指定日期、日期转换、相隔天数)

Java日期操作工具类

在Java中进行日期操作比较麻烦,需要经常进行格式化、计算等操作。使用Java日期操作工具类可以简化这些操作,提高代码可读性和可维护性。本文将介绍如何使用Java日期操作工具类完成获取指定日期、日期转换和相隔天数等常用操作。

获取指定日期

在Java日期操作中,通常需要获取当前日期、指定日期、某个日期的前一天或后一天等。下面是Java日期操作工具类中获取指定日期的代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    /**
     * 获取指定日期
     *
     * @param year  年份
     * @param month 月份
     * @param day   日
     * @return      指定日期
     */
    public static Date getDate(int year, int month, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(year, month - 1, day);
        return calendar.getTime();
    }

    /**
     * 获取当前日期
     *
     * @return 当前日期
     */
    public static Date getCurrentDate() {
        return new Date();
    }
}

如上代码所示,通过Calendar.getInstance()方法获取Java Calendar对象,然后调用set()方法设置年月日,最后通过getTime()方法获取指定日期。

以下是使用示例:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {

    public static void main(String[] args) {
        Date date = DateUtil.getDate(2022, 2, 22);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        System.out.println(sdf.format(date));

        Date currentDate = DateUtil.getCurrentDate();
        System.out.println(sdf.format(currentDate));
    }
}

上述代码输出结果为:2022/02/22 和 当前日期。

日期转换

在Java日期操作中,通常需要将日期转换为字符串、字符串转换为日期等。下面是Java日期操作工具类中日期转换的代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {
    /**
     * 字符串转日期
     *
     * @param dateStr   日期字符串
     * @param pattern   格式化字符串
     * @return          日期
     * @throws ParseException     解析异常
     */
    public static Date parse(String dateStr, String pattern) throws ParseException {
        DateFormat dateFormat = new SimpleDateFormat(pattern);
        return dateFormat.parse(dateStr);
    }

    /**
     * 日期转字符串
     *
     * @param date      日期
     * @param pattern   格式化字符串
     * @return          日期字符串
     */
    public static String format(Date date, String pattern) {
        DateFormat dateFormat = new SimpleDateFormat(pattern);
        return dateFormat.format(date);
    }
}

如上代码所示,通过DateFormat类与SimpleDateFormat类实现日期转换功能。其中parse()方法将字符串转换为日期,format()方法将日期转换为字符串。

以下是使用示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {

    public static void main(String[] args) throws ParseException {
        Date date = DateUtil.parse("2022/02/22", "yyyy/MM/dd");
        System.out.println(date);

        String dateStr = DateUtil.format(date, "yyyy-MM-dd");
        System.out.println(dateStr);
    }
}

输出结果为:Tue Feb 22 00:00:00 CST 2022 和 2022-02-22。

相隔天数

在Java日期操作中,经常需要计算两个日期相隔的天数。下面是Java日期操作工具类中计算相隔天数的代码:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    /**
     * 相隔天数
     *
     * @param start 开始日期
     * @param end   结束日期
     * @return      相隔天数
     */
    public static int daysBetween(Date start, Date end) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(start);
        long startTime = cal.getTimeInMillis();
        cal.setTime(end);
        long endTime = cal.getTimeInMillis();
        long diff = endTime - startTime;
        return (int) (diff / (1000 * 60 * 60 * 24));
    }
}

如上代码所示,通过Calendar获取日期对象,然后通过getTimeInMillis()方法将日期转换为毫秒数,计算出两个日期相隔的毫秒数,最后转换为天数。

以下是使用示例:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {

    public static void main(String[] args) {
        Date start = DateUtil.getDate(2022, 2, 22);
        Date end = DateUtil.getCurrentDate();
        int days = DateUtil.daysBetween(start, end);
        System.out.println(days);
    }
}

输出结果为:63。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java日期操作工具类(获取指定日期、日期转换、相隔天数) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 简洁实用的Java Base64编码加密异常处理类代码

    我们来讲解一下“简洁实用的Java Base64编码加密异常处理类代码”的完整攻略。 什么是Base64编码加密? Base64编码是一种将二进制数据转换成文本数据的方法,它可以用来将数据在网络上进行传输。Base64编码是一种简单、可逆的编码方式,目前广泛应用于各种网络协议和文件格式。在Java中可以使用Base64编码对二进制数据进行加密。 Java中的…

    Java 2023年5月20日
    00
  • Windows 下修改Tomcat jvm参数的方法

    完整攻略:Windows下修改Tomcat jvm参数的方法 1. 概述 Tomcat是一个非常常用的Java Web应用服务器,我们可以通过修改Tomcat的jvm参数来进行性能优化或解决一些启动或运行时遇到的问题。本文将介绍在Windows环境下如何修改Tomcat的jvm参数的方法和注意事项。 2. 修改方法 2.1 直接在命令行中设置jvm参数 我们…

    Java 2023年6月2日
    00
  • Java基于外观模式实现美食天下食谱功能实例详解

    Java基于外观模式实现美食天下食谱功能实例详解 什么是外观模式? 外观模式(Facade Pattern)是一种结构型设计模式,它为复杂的子系统提供了简单的接口,隐藏了子系统的复杂性,并将用户与子系统的实现分离开来。外观模式提供了一种更简单、更方便的方式来使用子系统,降低了使用成本。 美食天下食谱功能实例说明 假设我们在设计一个美食网站,需要实现一个食谱功…

    Java 2023年5月19日
    00
  • Java 将字符串动态生成字节码的实现方法

    Java提供了内置的动态生成字节码的API——java.lang.invoke.MethodHandles.Lookup,该API可以通过反射调用Java虚拟机的动态字节码生成引擎,用于在运行时生成并加载字节码。本攻略将详细讲解使用该API动态生成字节码的完整过程。 1. 创建一个类加载器 在Java中,每个类都必须通过类加载器进行加载才能被JVM识别并执行…

    Java 2023年5月27日
    00
  • httpclient模拟post请求json封装表单数据的实现方法

    Httpclient模拟POST请求JSON封装表单数据的实现方法 什么是Httpclient? HttpClient是Apache下的一个开源项目,用于模拟浏览器请求,支持协议如下:HTTP、HTTPS、FTP、LDAP、SMTP。 为什么使用Httpclient模拟POST请求JSON封装表单数据? Httpclient模拟POST请求JSON封装表单数…

    Java 2023年5月26日
    00
  • 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法

    如果在启动Tomcat时出现“错误: 代理抛出异常: java.rmi.server.ExportException: Port already in use: 1099”的错误,意味着端口1099已经被占用了。一般是因为其他应用程序或Tomcat已经在使用该端口,导致Tomcat无法使用。 解决该问题的方法有两种,一种是找到占用了端口1099的应用程序并关…

    Java 2023年5月27日
    00
  • SpringBoot高级配置之临时属性、配置文件、日志、多环境配置详解

    Spring Boot高级配置之临时属性、配置文件、日志、多环境配置详解 在Spring Boot应用程序中,我们需要进行高级配置,以满足不同的需求。本文将详细讲解Spring Boot高级配置,包括临时属性、配置文件、日志、多环境配置等。 临时属性 Spring Boot允许我们在运行时设置临时属性,这些属性将覆盖应用程序中的默认属性。以下是一个示例: @…

    Java 2023年5月15日
    00
  • Spring MVC 更灵活的控制 json 返回问题(自定义过滤字段)

    Spring MVC 是一款常用的 Web 框架,用于开发 Java Web 应用程序。它允许开发者对应用程序做出灵活的控制,其中一项迫切需要的控制就是对返回 JSON 数据的过滤。本文将探讨如何通过 Spring MVC 实现更灵活的对 JSON 返回数据进行过滤的控制。 环境搭建 在本地安装好 JDK 1.8 和 Maven 3.x 后,在 pom.xm…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部