详解Java中的日期类

详解Java中的日期类

Java提供了许多用于处理日期和时间的内置类,其中包括日期类、时间类、日历类等。在这些类中,最基础和常用的是日期类java.util.Date和日期格式化类java.text.SimpleDateFormat

java.util.Date类

java.util.Date类表示了一个时间点,它存储了一个long类型的整数值,该值代表了从1970年1月1日00:00:00 UTC到该日期所经过的毫秒数。通过该类提供的方法,可以将该时间点表示的时间转换成UTC、本地时间、时间戳等不同形式,以及进行时间运算、比较、取整等操作。

创建Date对象

创建Date对象最常用的方法是调用无参构造函数Date(),该方法返回一个代表当前时间的Date对象。除此之外,也可以通过传入long型时间戳参数的构造函数Date(long date)创建指定时间的Date对象。

// 创建当前时间的Date对象
Date now = new Date();
// 创建指定时间的Date对象
Date time = new Date(1606128000000L); // 时间戳:2020-11-24 00:00:00

转换日期格式

一个Date对象实际上只是代表了一个时间点,它和日期格式是无关的。日期格式是指日期的展示方式,例如"yyyy-MM-dd HH:mm:ss"、"yyyy年MM月dd日"等。为了按照一定的格式展示Date对象代表的时间,我们需要使用日期格式化类SimpleDateFormat

// 创建SimpleDateFormat对象,指定输出日期的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 将Date对象表示的时间转换成指定格式的字符串
String formattedTime = sdf.format(now);
System.out.println(formattedTime); // 2021-03-08 15:36:45

时间运算和比较

通过Date类提供的方法,我们可以对时间进行运算、比较等操作。

// 计算两个时间点之间相差的毫秒数
long diff = now.getTime() - time.getTime();
System.out.println("相差毫秒数:" + diff);
// 判断时间大小
System.out.println(now.after(time)); // true
System.out.println(now.before(time)); // false

日期格式化类SimpleDateFormat

SimpleDateFormat类是用于日期格式化和解析的工具类,它提供了构造函数和方法来指定日期格式、解析字符串、格式化日期等相关功能。

初始化并使用SimpleDateFormat

SimpleDateFormat的构造函数有多种重载形式,可以指定不同的日期模板。通常使用的方法是,使用特定的日期模板初始化SimpleDateFormat对象,再使用该对象的parse方法解析字符串,或使用format方法将Date类型的日期格式化成字符串。

// 实例化SimpleDateFormat对象,指定日期格式
SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd");
// 解析指定格式字符串为Date类型
Date date = fmt.parse("2021/03/08");
// 将Date类型日期格式化成指定格式的字符串
String str = fmt.format(date);
System.out.println(str); // 2021/03/08

日期模板

SimpleDateFormat支持的日期模板如下:

符号 含义
yyyy 完整的年份
MM 月份,不足两位数时前面补0
M 月份
dd 日期,不足两位数时前面补0
d 日期
HH 小时,24小时制,不足两位数时前面补0
H 小时,24小时制
hh 小时,12小时制,不足两位数时前面补0
h 小时,12小时制
mm 分钟,不足两位数时前面补0
m 分钟
ss 秒,不足两位数时前面补0
s

日期计算

SimpleDateFormat也支持日期计算,例如加减年份、月份、日期等。

Date date = new SimpleDateFormat("yyyy/MM/dd").parse("2021/03/08");
// 计算加上一个月后的日期
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, 1);
String str = new SimpleDateFormat("yyyy/MM/dd").format(cal.getTime());
System.out.println(str); // 2021/04/08

示例

示例一:计算距离现在一周后的日期

Date curDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curDate);
cal.add(Calendar.WEEK_OF_YEAR, 1);
String formattedDate = new SimpleDateFormat("yyyy年M月d日").format(cal.getTime());
System.out.println("距离今天一周后的日期:" + formattedDate);

输出:

距离今天一周后的日期:2021年3月15日

示例二:解析字符串为Date类型

String str = "2021-03-08";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
System.out.println("解析字符串为Date类型:" + date);

输出:

解析字符串为Date类型:Mon Mar 08 00:00:00 CST 2021

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

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

相关文章

  • ResHacker怎么替换图标 ResHacker提取并保存avi图文步骤

    以下是关于“ResHacker怎么替换图标 ResHacker提取并保存avi图文步骤”的完整攻略: ResHacker怎么替换图标 如果你想要替换一个程序的图标,可以使用ResHacker工具。 1.首先要打开ResHacker工具,然后在菜单中选择“Open”,并选择要修改的程序。 2.选择要修改的程序后,你需要寻找其中的图标资源。可以通过在左侧的菜单中…

    Java 2023年5月26日
    00
  • SpringBoot集成QQ第三方登陆的实现

    下面是关于“SpringBoot集成QQ第三方登陆的实现”的完整攻略: 准备工作 获取QQ开放平台的App ID和App Secret 在访问QQ开放平台前,需要提前获取申请QQ第三方登陆的AppID和AppSecret,具体申请过程可以参考QQ互联官方文档。 导入依赖 在SpringBoot应用的pom.xml文件中添加QQ互联API的依赖,同时可以添加日…

    Java 2023年5月20日
    00
  • Java Date类常用示例_动力节点Java学院整理

    Java Date类常用示例攻略 什么是Date类 在Java中,Date类是一个代表日期和时间的类,用来表示一个固定的日期或时间点。 Date类的构造方法 Date():用当前日期和时间构造一个Date对象。 Date(long date):用一个标准的毫秒数来构造一个Date对象。 Date(int year, int month, int date):…

    Java 2023年5月20日
    00
  • SpringBoot业务逻辑异常的处理方法介绍

    下面我将详细讲解 SpringBoot 业务逻辑异常的处理方法介绍。在 SpringBoot 中,我们可以通过自定义异常处理器、统一异常处理等方式来处理业务逻辑异常。 1. 自定义异常处理器 自定义异常处理器的作用是在出现业务逻辑异常时,能够捕获对应的异常并进行处理。在 SpringBoot 中,我们可以通过实现 HandlerExceptionResolv…

    Java 2023年5月27日
    00
  • jsp分页显示的实现代码

    那我就来为大家详细讲解一下JSP分页显示的实现代码的完整攻略。 1. 实现分页的前提条件 在使用JSP实现分页显示前,我们需要先了解一下实现的前提条件。这里列出了两点: 数据库的分页查询:在获取数据时,需要使用数据库的分页查询功能,比如MySQL中的LIMIT语句; JSP中的JavaBean:在JSP中,使用JavaBean来封装分页数据,显示到JSP页面…

    Java 2023年6月15日
    00
  • 使用Spring安全表达式控制系统功能访问权限问题

    使用Spring安全表达式可以通过在方法执行前进行鉴权,从而控制系统功能的访问权限。下面是使用Spring安全表达式控制系统功能访问权限的完整攻略: 引入Spring Security依赖 在Maven项目的POM文件中,引入Spring Security依赖: <dependency> <groupId>org.springfram…

    Java 2023年5月20日
    00
  • Spring boot从安装到交互功能实现零基础全程详解

    Spring boot从安装到交互功能实现零基础全程详解 本文将详细讲解如何从零开始安装和使用Spring Boot,以及如何实现基本的交互功能,让你从零基础到实现一个Spring Boot应用项目。 安装 首先,你需要安装Java和Maven。 安装Java 访问Oracle官网,下载并安装最新版本的JDK。 安装Maven 访问Apache Maven官…

    Java 2023年5月15日
    00
  • SpringBoot整合第三方技术的实现

    SpringBoot是一个快速开发框架,它的优点是快速、方便、自动化和一体化。在实际开发中,我们常常会涉及到与第三方技术的整合,例如:数据库、缓存、消息队列等等。这里就提供一个完整的攻略,讲解SpringBoot如何整合第三方技术。 整合数据库 第一步:添加依赖 在pom.xml中添加Spring Data JPA和数据库驱动的依赖: <depende…

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