java Date和SimpleDateFormat时间类详解

Java Date 和 SimpleDateFormat 时间类详解

Java Date 和 SimpleDateFormat 是 Java 日期/时间处理中最常用的类,可以方便地进行日期和时间格式化、解析和计算。本文将详细讲解 Java Date 和 SimpleDateFormat 的使用方法,包括创建 Date 对象、格式化日期和时间、解析字符串为 Date 对象、获取日期和时间的不同部分以及计算日期和时间等方面。

创建 Date 对象

Date 类代表一个日期和时间的实例,它的构造方法可以创建一个包含当前时间的 Date 对象,也可以根据指定的年、月、日、时、分、秒等参数创建一个指定时间的 Date 对象。例如:

// 创建当前时间的 Date 对象
Date now = new Date();

// 创建指定时间的 Date 对象
Date date = new Date(121, 5, 14, 13, 30, 0); // 2021年6月14日13:30:00

格式化日期和时间

SimpleDateFormat 是一个用于格式化和解析日期和时间的类。它可以将 Date 对象格式化为一个指定格式的字符串,也可以将一个字符串解析为 Date 对象。在 SimpleDateFormat 中,可以使用特定的格式符和模式字符串来定义日期和时间的格式。下面是一些常用的日期和时间格式模式:

格式模式 描述
yyyy 年份,例如 2021
MM 月份,范围是 01-12
dd 日期,范围是 01-31
HH 小时,范围是 00-23
mm 分钟,范围是 00-59
ss 秒钟,范围是 00-59
SSS 毫秒,范围是 000-999
E 星期几,例如星期一到星期日

下面是将 Date 对象格式化为字符串的示例代码:

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS E");
String str = sdf.format(now);
System.out.println(str); // 2021-06-14 19:20:15.319 Mon

上面的代码使用 yyyy-MM-dd HH:mm:ss.SSS E 格式字符串将当前时间格式化为字符串,并输出到控制台。可以看到,输出结果包括了年、月、日、时、分、秒、毫秒和星期几等信息。

解析字符串为 Date 对象

除了将 Date 对象格式化为字符串,SimpleDateFormat 还可以从字符串中解析出一个对应的 Date 对象。下面是将字符串解析为 Date 对象的示例代码:

String str = "2021-06-01 12:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
System.out.println(date); // Tue Jun 01 12:30:00 CST 2021

上面的代码将一个字符串解析为 Date 对象,并输出到控制台。可以看到,输出结果为一个包含了指定日期和时间信息的 Date 对象。

获取日期和时间的不同部分

Date 和 Calendar 类提供了许多方法来获取日期和时间的不同部分,例如年、月、日、时、分、秒等。下面是一些常用的获取日期和时间部分的示例代码:

Date now = new Date();

// 获取年份
int year = now.getYear() + 1900;

// 获取月份
int month = now.getMonth() + 1;

// 获取日期
int day = now.getDate();

// 获取小时
int hour = now.getHours();

// 获取分钟
int minute = now.getMinutes();

// 获取秒钟
int second = now.getSeconds();

上面的代码使用 Date 类的方法获取了当前时间的年、月、日、时、分、秒等信息,并将它们分别赋值给变量。需要注意的是,由于 getYear() 方法获取的是相对于 1900 年的年份,因此要加上 1900 才是实际的年份。

计算日期和时间

Date 类提供了许多方法来计算日期和时间,例如增加或减少天数、小时数等。下面是一些常用的计算日期和时间的示例代码:

Date now = new Date();

// 增加一天
long oneDay = 24 * 60 * 60 * 1000;
Date tomorrow = new Date(now.getTime() + oneDay);

// 减少一小时
long oneHour = 60 * 60 * 1000;
Date yesterday = new Date(now.getTime() - oneHour);

上面的代码使用 Date 类的方法增加或减少了指定的时间量,并创建了一个包含指定日期和时间的 Date 对象。

示例

下面是一个完整的示例代码,演示了如何使用 Date 和 SimpleDateFormat 类来格式化时间、解析字符串、获取时间部分和计算时间等操作:

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

public class DateDemo {
    public static void main(String[] args) throws Exception {
        // 创建当前时间的 Date 对象
        Date now = new Date();

        // 创建指定时间的 Date 对象
        Date date = new Date(121, 5, 14, 13, 30, 0);

        // 格式化当前时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS E");
        String str = sdf.format(now);
        System.out.println(str);

        // 解析字符串为 Date 对象
        String str2 = "2021-06-01 12:30:00";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date2 = sdf2.parse(str2);
        System.out.println(date2);

        // 获取时间部分
        int year = now.getYear() + 1900;
        int month = now.getMonth() + 1;
        int day = now.getDate();
        int hour = now.getHours();
        int minute = now.getMinutes();
        int second = now.getSeconds();
        System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);

        // 计算时间
        long oneDay = 24 * 60 * 60 * 1000;
        Date tomorrow = new Date(now.getTime() + oneDay);
        long oneHour = 60 * 60 * 1000;
        Date yesterday = new Date(now.getTime() - oneHour);

        System.out.println(tomorrow);
        System.out.println(yesterday);
    }
}

总结

Java Date 和 SimpleDateFormat 是 Java 日期/时间处理中最常用的类,可以方便地进行日期和时间格式化、解析和计算。在日常开发中,使用这两个类可以方便地处理各种日期和时间格式的需求,是 Java 开发必备的基础知识。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java Date和SimpleDateFormat时间类详解 - Python技术站

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

相关文章

  • Spring Boot应用开发初探与实例讲解

    Spring Boot应用开发初探与实例讲解 什么是Spring Boot? Spring Boot是由Spring官方推出的一款快速构建spring应用程序的框架。它简化了Spring应用程序的开发和部署过程,提供了许多默认配置和开箱即用的组件,使得开发者能够更加专注于业务逻辑的编写。 如何开始Spring Boot应用开发? 步骤一:环境准备 首先,我们…

    Java 2023年5月19日
    00
  • 深入了解Java8中的时区日期时间

    关于“深入了解Java8中的时区日期时间”的攻略,我将从以下几个方面进行详细讲解: 时区概念介绍 Java8中的时区 日期时间的表示和操作 时区转换和格式化 时区概念介绍 时区是一个地球上的地区,为方便起见,划分为24个标准时区,每个时区以相对于格林威治标准时间的小时数进行标记。时区与地球上的经度有密切关系,通常是基于一个参考点来描述小时数。例如,北京的时区…

    Java 2023年5月20日
    00
  • 详解在Java的Struts2框架中配置Action的方法

    下面我将详细讲解在Java的Struts2框架中配置Action的方法。在Struts2框架中,可以通过配置struts.xml文件或注解的方式来配置Action。 1. 配置struts.xml文件 1.1 新建Action类 首先需要新建一个Action类,通常继承com.opensymphony.xwork2.ActionSupport类。例如: pu…

    Java 2023年5月20日
    00
  • SpringBoot 使用 FTP 操作文件的过程(删除、上传、下载文件)

    一、引言 在生产环境中,经常会使用FTP(文件传输协议)来上传和下载文件。本文将会详细地讲解如何在Spring Boot应用中使用FTP操作文件,包括文件的上传、下载、删除等操作。 二、FTP操作文件的依赖 在使用Java操作FTP的过程中,需要引入两个依赖: <!– FTP客户端依赖 –> <dependency> <gr…

    Java 2023年5月20日
    00
  • java开发之File类详细使用方法介绍

    Java开发之File类详细使用方法介绍 在Java开发中,File类是一个十分重要的类,它主要用于文件和目录的操作。在本文中,我们将详细介绍File类的各种使用方法,帮助读者更好地掌握Java文件和目录管理相关知识。 File类的基本用法 创建File对象 要操作文件或目录,首先需要创建File对象。有以下几种创建方法: // 创建一个文件 File fi…

    Java 2023年5月20日
    00
  • 使用springboot不自动初始化数据库连接池

    使用SpringBoot不自动初始化数据库连接池需要进行以下步骤: 禁用SpringBoot的数据源自动配置 在项目的配置文件(application.properties或application.yml)中,添加如下配置: spring.datasource.auto-configured=false spring.autoconfigure.exclud…

    Java 2023年5月20日
    00
  • Java 如何从spring容器中获取注入的bean对象

    获取Spring容器中注入的Bean对象有两种方法:使用注解获取和使用ApplicationContext获取。 使用注解获取 我们可以使用Spring提供的注解@Autowired或@Resource注解来获取注入的Bean对象。 import org.springframework.beans.factory.annotation.Autowired; …

    Java 2023年5月20日
    00
  • C# 使用PrintDocument类打印标签的方法

    标题:C# 使用PrintDocument类打印标签的方法 概述 PrintDocument是C#中用于文档打印的类,我们可以使用它来打印标签。在使用PrintDocument类进行标签打印之前,必须先为打印过程编写事件处理程序。本文将会详细讲解C# 使用PrintDocument类打印标签的方法。 步骤 步骤1:设计标签 在设计标签时,需要确定标签的尺寸、…

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