详解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日

相关文章

  • Spring Boot 快速入门指南

    下面是关于 Spring Boot 快速入门指南的攻略: 概述 Spring Boot 是基于 Spring 框架的快速开发框架,通过自动装配和约定俗成的配置,可以快速搭建一个简单的 Java 应用。本文将介绍如何使用 Spring Boot 快速入门。 安装与配置 安装 Java 开发环境(JDK),最好使用 JDK 8 或以上版本。同时,也需要安装一个 …

    Java 2023年5月15日
    00
  • 详解SpringBoot下文件上传与下载的实现

    详解SpringBoot下文件上传与下载的实现 文件上传 在SpringBoot中,我们可以通过MultipartFile类型的参数来实现文件上传。步骤如下: 在前端,添加一个文件的input框,并设置为type=”file”。 <form action="/upload" method="post" encty…

    Java 2023年5月31日
    00
  • Java实现评论回复功能的完整步骤

    下面是Java实现评论回复功能的完整步骤: 1. 数据库设计 首先需要为评论和回复设计数据库表,常见的设计方式是使用两个表分别存储评论和回复,这两个表之间可以通过外键联系起来。一个简单的示例表结构如下: 评论表 Field Type Description id int 评论ID content varchar 评论内容 parent_id int 父评论I…

    Java 2023年5月19日
    00
  • Spring Boot启动过程(六)之内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动教程详解

    Spring Boot是一个基于Spring框架的开源框架,用于快速构建适用于各种应用场景的独立、生产级别的Spring应用程序。在Spring Boot中,内嵌Tomcat作为默认的Servlet容器,为我们提供了灵活的配置和部署方式,本文将详细讲解内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的…

    Java 2023年5月19日
    00
  • 使用maven shade插件解决项目版本冲突详解

    首先,需要清楚的是,当我们使用Maven构建项目时,会引入许多第三方依赖,有时这些依赖版本存在冲突,会导致我们的项目无法正常编译和运行。这时候就需要使用Maven Shade Plugin来解决依赖版本冲突问题。 以下是Maven Shade Plugin的使用教程: 1. 添加Maven Shade Plugin插件到项目中 在项目中的pom.xml文件中…

    Java 2023年6月2日
    00
  • javascript实现动态统计图开发实例

    下面我将为您详细讲解“JavaScript实现动态统计图开发实例”的完整攻略。 1. 准备工作 在实现动态统计图之前,需要准备以下工具和资源: 数据可视化库:例如ECharts、D3.js、Highcharts等; 前端框架:例如Vue.js、React.js等; 数据源:可以是本地数据,也可以是网络接口返回的数据。 2. 选择可视化库 在选择可视化库时,需…

    Java 2023年6月16日
    00
  • 使用Spring的AbstractRoutingDataSource实现多数据源切换示例

    以下是使用Spring的AbstractRoutingDataSource实现多数据源切换的完整攻略。 1. 引入依赖 首先需要在项目中引入Spring的相关依赖,其中包括Spring JDBC、Spring AOP和Spring Context等模块。最新版本的Spring依赖可以在Maven中心库中获取,或者可以到Spring官网查看最新的版本信息。 2…

    Java 2023年5月20日
    00
  • Mybatis集成Spring的实例代码_动力节点Java 学院整理

    下面是Mybatis集成Spring的实例代码攻略: 概述 Mybatis是一款流行的持久层框架,Spring则是业界广泛使用的框架之一,在使用Mybatis时,我们可以将其集成到Spring中以便更好地管理和使用。 本攻略将对如何将Mybatis集成到Spring中进行详细讲解,同时提供相应的代码示例,以方便读者理解和实践。 步骤 第一步:添加依赖 首先需…

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