JAVA日期处理类详解

JAVA日期处理类详解

在JAVA编程中,日期处理是非常重要的一部分内容。JAVA内置了许多日期处理类,下面就来详细地介绍一下。

java.util.Date类

java.util.Date类是JAVA中最早的关于日期时间处理的类。在JAVA8之前,它被广泛使用。但是由于它的一些不足之处,比如日期时间格式化问题,API设计不具有可读性等等,所以在JAVA8之后就逐渐被取代了。

示例1:获取当前日期

import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
        //获取当前日期
        Date currentDate = new Date();
        System.out.println(currentDate);
    }
}

输出结果:

Thu May 20 10:15:35 CST 2021

示例2:Date类的其它常用方法

import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.toString());
        System.out.println(date.getTime());
        System.out.println(date.before(new Date()));
        System.out.println(date.after(new Date()));
        System.out.println(date.equals(new Date()));
    }
}

输出结果:

Thu May 20 10:25:08 CST 2021
1621472708381
true
false
false

java.util.Calendar类

java.util.Calendar类是一个更高级的日期时间处理类。它比Date类更加灵活,可以用于获取指定时间的年、月、日、小时、分钟等等,而且推荐使用它,因为它比Date类具有更好的可读性和更好的API设计。

示例3:获取指定日期的年、月、日

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2021, Calendar.MAY, 20);

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        System.out.printf("Year : %d%n", year);
        System.out.printf("Month : %d%n", month + 1);
        System.out.printf("Day : %d%n", day);
    }
}

输出结果:

Year : 2021
Month : 5
Day : 20

示例4:把Calendar对象转换成java.util.Date对象

import java.util.Calendar;
import java.util.Date;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2021, Calendar.MAY, 20);
        Date date = calendar.getTime();
        System.out.println(date);
    }
}

输出结果:

Thu May 20 00:00:00 CST 2021

java.time包

java.time包是JAVA8新增的日期时间处理包,它是线程安全的并且更好地解决了日期时间格式化问题。它的使用和Calendar类非常相似,但是它更加清晰、简单,更加适合常规的日期时间处理。

示例5:获取当前日期和时间

import java.time.LocalDate;
import java.time.LocalTime;

public class JavaTimeExample {
    public static void main(String[] args) {
        LocalDate currentDate = LocalDate.now();
        LocalTime currentTime = LocalTime.now();
        System.out.println(currentDate + " " + currentTime);
    }
}

输出结果:

2021-05-20 10:41:34.536

示例6:使用java.time.LocalDateTime对象进行日期和时间运算

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class JavaTimeExample {
    public static void main(String[] args) {
        LocalDateTime dateTime1 = LocalDateTime.of(2021, 5, 20, 11, 0);
        LocalDateTime dateTime2 = LocalDateTime.of(2021, 5, 20, 12, 0);

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        System.out.println(dateTime1.format(formatter));
        System.out.println(dateTime2.format(formatter));

        long diffMinutes = ChronoUnit.MINUTES.between(dateTime1, dateTime2);
        System.out.println("相差" + diffMinutes + "分钟");
    }
}

输出结果:

2021-05-20 11:00
2021-05-20 12:00
相差60分钟

以上就是JAVA日期处理类的详细攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA日期处理类详解 - Python技术站

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

相关文章

  • 解读Spring-boot的debug调试

    解读Spring Boot的Debug调试攻略 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在开发过程中,我们经常需要进行调试来解决问题。本文将介绍如何使用Spring Boot进行Debug调试,并提供两个示例。 开启Debug模式 在Spring Boot中,我们可以通过在启动命令中…

    Java 2023年5月15日
    00
  • 快速了解Maven

    快速了解Maven Maven是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,可以自动化构建、测试、打包和部署Java项目。在本文中,我们将带您快速了解Maven,帮助您快速上手使用。 安装Maven 首先,您需要安装Maven。Maven官方网站提供了二进制安装包的下载,您可以选择与您的操作系统相应的版本进行下载并…

    Java 2023年5月20日
    00
  • Spring Boot 利用 XML 方式整合 MyBatis

    Spring Boot 利用 XML 方式整合 MyBatis攻略 本文将介绍使用 Spring Boot 通过 XML 配置方式整合 MyBatis 的完整流程,并提供两个示例。 1. 添加依赖 在 pom.xml 文件中添加如下依赖: <dependency> <groupId>org.mybatis</groupId&gt…

    Java 2023年5月20日
    00
  • java多线程有序读取同一个文件

    要实现Java多线程有序读取同一个文件,可以使用以下步骤: 步骤一:打开文件流 首先,需要创建一个FileInputStream对象,该对象可以打开文件流并准备读取数据。代码示例如下: FileInputStream fis = new FileInputStream("file.txt"); 步骤二:创建 BufferedReader …

    Java 2023年5月19日
    00
  • javaWeb使用Kaptcha组件生成验证码

    下面为您详细讲解“javaWeb使用Kaptcha组件生成验证码”的完整攻略。 什么是Kaptcha组件 Kaptcha是Google code上的一个开源项目,是一个Java的验证码组件,可用于生成验证码。 Kaptcha组件的优点 与其他验证码组件相比,Kaptcha组件有以下优点: 易于使用和集成。 提供了丰富的配置选项,可以自由定制验证码图片样式。 …

    Java 2023年6月15日
    00
  • Spring组件开发模式支持SPEL表达式

    Spring组件开发模式是一种从设计时考虑到运行时规范和约束的开发方式。Spring框架提供了丰富的支持,比如注解和XML配置文件,以完成此模式。其中,SPEL表达式是一个灵活和强大的特性,可以在运行时定义和计算值。本文将详细介绍如何在Spring组件开发模式中使用SPEL表达式。 开启SPEL支持 要使用SPEL表达式,首先需要确保Spring应用程序上下…

    Java 2023年5月19日
    00
  • SpringMVC实现文件上传和下载的工具类

    以下是详细的“SpringMVC实现文件上传和下载的工具类”的攻略。 目录 准备工作 文件上传 前端页面 后端Controller 文件下载 后端Controller 前端页面 总结 准备工作 在实现文件上传和下载之前,我们需要在pom.xml文件中添加相关的依赖项。如果你使用的是Maven,请在该文件中添加以下依赖项: <dependency>…

    Java 2023年5月31日
    00
  • MyBatis的逆向工程详解

    MyBatis的逆向工程详解 什么是MyBatis逆向工程? MyBatis逆向工程是指根据数据库中的表结构生成MyBatis对应的Mapper接口以及对应的Mapper XML文件。如果手写这些代码,需要考虑很多细节,编写起来比较繁琐和容易出错,而逆向工程则可以自动化地生成这些代码。逆向工程可以大大提高开发效率,并且保证生成的代码的准确性。 MyBatis…

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