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基础教程之字符流文件读写

    首先我们需要了解什么是字符流。字符流是按字符为单位进行操作的输入/输出流,字符流和字节流的区别在于,字节流操作的是原始的字节数据,而字符流要将原始数据转化成字符再进行操作。使用字符流输入/输出的优势是能够正确地处理 Unicode 字符,而字节流则不能。这就是为什么我们要使用字符流进行文件读写。 下面就是 Java 基础教程之字符流文件读写的攻略: 1. 字…

    Java 2023年5月20日
    00
  • 详解Spring data 定义默认时间与日期的实例

    关于详解 Spring Data 定义默认时间与日期的实例的攻略,以下是完整的步骤: 第一步:在 Entity 类中定义默认时间和日期 在 Spring Data 中,我们可以通过定义一个 BaseEntity 来设置默认的时间和日期。在 BaseEntity 中,我们定义了 @CreatedDate 和 @LastModifiedDate 注解,可以用于更…

    Java 2023年6月16日
    00
  • 详解Java如何实现基于Redis的分布式锁

    下面我就来详细讲解一下Java如何实现基于Redis的分布式锁的完整攻略。 什么是分布式锁 分布式锁是在分布式环境下使用的一种锁机制,用于保证在分布式环境下的多个节点对于同一资源的访问的互斥性,从而保证数据的一致性和完整性。通过分布式锁机制,可以实现多个进程或者多个线程之间的同步。 Redis是分布式锁的常见实现方式 Redis是流行的一个开源内存数据存储系…

    Java 2023年5月27日
    00
  • 不使用浏览器运行javascript代码的方法

    不使用浏览器运行JavaScript代码的方法有很多种,以下是其中几种常见的方法: 1. Node.js Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以将JavaScript代码运行在服务器端,并提供了很多常用的模块,比如文件系统、网络、加密、内存数据库等。安装Node.js后,可以使用node命令来运行JavaScrip…

    Java 2023年5月23日
    00
  • Java的引用类型常用的四种方法

    Java的引用类型常用的四种方法包含:按值传递、按引用传递、按可变长数组传递、按包装类传递。接下来我会结合示例详细介绍这四种方法。 按值传递 按值传递是将方法外部的值复制到方法内部,在方法中操作该值,但不会对原始值造成影响。示例代码如下: public class Main { public static void main(String[] args) {…

    Java 2023年5月26日
    00
  • java实现的DES加密算法详解

    Java实现的DES加密算法详解 什么是DES加密算法 DES加密算法是一种对称密钥算法,全称为“Data Encryption Standard”,是美国IBM公司于1975年研制的一种对称密钥加密算法。DES算法的原理非常简单,就是将明文经过一系列置换和替换操作,最终被加密成密文。而解密过程就是将密文经过相应的操作,最终得到明文。 DES算法具有如下特点…

    Java 2023年5月19日
    00
  • Java中的maven和gradle的比较与使用详解

    Java中的maven和gradle的比较与使用详解 简介 Maven和Gradle都是Java项目的构建工具。它们旨在自动化构建过程,自动下载依赖,生成和管理项目的构建文件,使开发人员更加专注于业务功能实现。但是,它们之间还是有一些不同点的。 Maven Maven以XML为基础的构建工具,通过相应的POM文件连接了许多信息,例如构建过程和项目依赖管理等等…

    Java 2023年5月20日
    00
  • java 查找字符串所在的位置代码

    当我们在Java编程中需要查找某个字符串在原字符串中的位置时,可以使用Java自带的String类中的indexOf()方法来实现。以下是查找字符串所在位置的完整攻略: 第一步:创建String类型的字符串 首先需要创建一个String类型的字符串,作为原字符串进行查找操作。例如: String str = "Hello World!";…

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