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日

相关文章

  • 详解JavaScript中的函数、对象

    详解JavaScript中的函数 JavaScript中的函数是非常重要的一个概念,它不仅仅可以完成一些基本的计算和逻辑操作,还可以使用函数作为参数、返回值或者构造函数。以下是详细讲解函数的内容。 函数声明 在JavaScript中,函数的声明可以使用function关键字,其后跟随函数名、参数列表和函数体。 function add(a, b) { ret…

    Java 2023年5月26日
    00
  • 浅谈FileItem类的常用方法

    下面开始介绍浅谈FileItem类的常用方法的攻略。 FileItem类简介 FileItem类是Apache Commons FileUpload库中的一个类,用于对上传的文件进行操作。该类可以获取上传文件的各种信息,包括文件名称、大小、MIME类型等等。下面我们将会介绍FileItem类的常用方法。 常用方法详解 1. getFieldName() 该方…

    Java 2023年5月19日
    00
  • Java编程用指定字符打印菱形实例

    对于Java编程打印指定字符的菱形实例,具体操作步骤如下: 1. 确定框架和输出样式 菱形实例通常分为两部分,上半部分和下半部分。我们可以先确定输出框架,可以用一个二维字符数组来表示,其中每个元素存储一个字符,通常用空格或特定字符填充。 上半部分可以采用两个嵌套的循环控制每行的输出符号,下半部分则可以采用逆向输出的方法,即先确定下边界,再循环输出。 2. 确…

    Java 2023年5月23日
    00
  • Android实现文字翻转动画的效果

    下面我来详细讲解“Android实现文字翻转动画的效果”的完整攻略。 一、思路分析 实现文字翻转动画,本质上是将文字从正面翻转到背面,再从背面翻转回正面,因此涉及到以下几个步骤: 创建两个TextView,一个作为正面文字,一个作为背面文字。 将正面文字和背面文字重合在同一个位置,重合时背面文字需要做一个180度的翻转。 当需要翻转时,将正面文字(即背面文字…

    Java 2023年5月23日
    00
  • 通过button将form表单的数据提交到action层的实例

    下面是完整攻略及两条示例说明: 1. 创建表单 在html页面中使用form标签创建表单,指定表单的action属性为目标页面的url,同时指定表单的method属性为post或get。 示例代码: <form action="/submit" method="post"> <input type=&…

    Java 2023年6月15日
    00
  • Java中的this指针使用方法分享

    Java中的this指针使用方法分享 在Java中,this关键字代表当前对象,可以在类的实例方法中使用。本文将分享Java中this指针的用法。 1. 使用this代替实例变量 在类中,实例变量前不带任何前缀,而方法中的参数名可能与实例变量同名。这时候就需要使用this关键字来区分参数名和实例变量名。比如: public class Person { pr…

    Java 2023年5月19日
    00
  • 浅析Java自定义注解的用法

    接下来我会详细讲解“浅析Java自定义注解的用法”的完整攻略。 什么是Java自定义注解 Java自定义注解相对于内置的注解,可以根据开发人员的需要添加自己想要的注解。Java自定义注解其实是一种元注解,它可以用来标记代码或方法的各种属性。 Java的注解是在Java SE5中新增的特性,它可以用来填写源代码的元数据,在编译、加载、运行时被其他程序利用。 如…

    Java 2023年5月26日
    00
  • 简述Mybatis增删改查实例代码

    下面是详细讲解“简述Mybatis增删改查实例代码”的完整攻略。 1. 简介 Mybatis是一款优秀的持久层框架,它对JDBC的操作进行了封装,使我们能够更加高效地进行数据库操作,同时也提高了代码的可读性和可维护性。在这里,我们将介绍如何使用Mybatis进行增删改查操作。 2. 环境 为了执行Mybatis示例,我们需要安装以下软件: Java JDK …

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