Java中的日期和时间类以及Calendar类用法详解

Java中日期和时间类以及Calendar类用法详解

Java中有三个主要的日期时间类:Date、Calendar和SimpleDateFormat。在Java 8及以上版本中,还增加了新的日期时间API(即java.time包)。

1. Date类

日期类java.util.Date最初设计用于表示当前时间。Date自基准时间(1970年1月1日)以来的毫秒数存储日期和时间。

以下是Date类的例子,展示如何使用Date类来获取并打印出当前日期、时间。

import java.util.*;
public class DateExample {
    public static void main(String args[]) {
        Date date = new Date();
        System.out.println("Current date: "+date);
    }
}

上述代码运行后的输出结果为 :

Current date: Wed Jun 03 14:23:08 PDT 2020

但是从Java 8开始,官方不再推荐使用Date类。因此,在Java 8之前使用Date类,建议使用Calendar类。

2. Calendar类

Calendar(日历)类是一个抽象类,它提供了许多方法来操作日期和时间。它也给出了实例化为特定瞬间的方法。Calendar支持“秒”和“毫秒”粒度。

下面是Calendar类的一个例子,展示如何使用Calendar类来获取并打印出特定日期的日期、月份和年份:

import java.util.*;
public class CalendarExample {
    public static void main(String args[]) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2020);
        cal.set(Calendar.MONTH, Calendar.MAY);
        cal.set(Calendar.DAY_OF_MONTH, 16);
        System.out.println(
            "Calendar's Year: " + cal.get(Calendar.YEAR));
        System.out.println(
            "Calendar's Month: " + cal.get(Calendar.MONTH));
        System.out.println(
            "Calendar's Day of Month: " + cal.get(Calendar.DAY_OF_MONTH));
    }
}

上述代码运行后的输出结果为:

Calendar's Year: 2020
Calendar's Month: 4
Calendar's Day of Month: 16

这里需要注意,Calendar的月份以0开始,例如:0代表一月,1代表二月,以此类推。

3. SimpleDateFormat类

SimpleDateFormat类提供格式化和解析操作日期和时间。它允许指定自定义的日期格式符号来格式化日期时间。以下是一些常用日期格式符号:

符号 含义
yyyy 年份,例如:1998, 2020
MM 月份,例如:01,12
MMM 简写月份,例如:Jan,Dec
dd 两位数的日期,例如:01,31
E 星期几,例如:Sun, Mon, Tue...
HH 小时(24小时制),例如:00,23
hh 小时(12小时制),例如:00,12
mm 分钟,例如:00,59
ss 秒钟,例如:00,59
SSS 毫秒数,例如:234,543
z 时区,例如:GMT,UTC,CST

以下是SimpleDateFormat类的一个例子,展示如何使用不同的日期格式来展示日期:

import java.util.*;
import java.text.*;
public class SimpleDateFormatExample {
    public static void main(String args[]) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
        System.out.println("当前时间是 : " + sdf.format(date));
    }
}

上述代码运行后的输出结果为:

当前时间是 : 2020-06-03 14:23:08.854 PDT

4. Java 8 新的日期时间API

Java 8新的日期API中,包括了java.time包,其中最常用的类为LocalDateTime。LocalDateTime类是线程安全的,因为它是不可变的。

下面是一个简单示例展示了如何使用LocalDateTime类获取并打印当前的日期和时间:

import java.time.LocalDateTime;

public class LocalDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime currentDateTime = LocalDateTime.now();
        System.out.println("Current LocalDateTime: " + currentDateTime);
    }
}

上述代码运行后的输出结果为:

Current LocalDateTime: 2020-06-03T14:23:08.854

结论

在Java中处理日期和时间是非常重要的,因为几乎所有的程序都会在一定程度上使用这些东西。在使用日期和时间API时,请牢记它们的特点和使用方法。在Java 8及以上的版本中,新日期时间API已经几乎代替了旧的API。在处理日期和时间时,请始终使用最新的API。

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

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

相关文章

  • 在jsp页面中响应速度提高的7种方法分享

    “在jsp页面中响应速度提高的7种方法分享”是一篇介绍如何提升jsp页面响应速度的文章。下面我们来逐一讲解这7条方法。 1. 压缩页面 在jsp页面中,压缩页面可以减少文件大小,从而减少传输时间,提高页面加载速度。可以使用GZIP、BZIP等压缩技术进行压缩。在jsp中,可以使用filter过滤器来实现页面压缩。以下是一个示例: public class C…

    Java 2023年6月15日
    00
  • 使用maven工具解决jar包冲突或重复加载的问题

    使用 Maven 工具可以有效地解决 Java 项目中 Jar 包冲突或者重复加载的问题。接下来,我会详细讲解如何使用 Maven 工具来解决这个问题的完整攻略。 1. Maven依赖冲突的解决 Maven 场景中,当我们引用的多个 Jar 包中存在重复的类或者接口时,会出现冲突。这种冲突情况下,只有部分功能可以使用,或者无法正常使用。 为了解决这个问题,我…

    Java 2023年5月19日
    00
  • SpringBoot集成JPA持久层框架,简化数据库操作

    以下是详细讲解“SpringBoot集成JPA持久层框架,简化数据库操作”的完整攻略。 1. 引入JPA依赖 在SpringBoot中引入JPA依赖非常简单,只需要在Maven或Gradle的配置文件中添加以下依赖就可以了。 Maven依赖配置 <dependency> <groupId>org.springframework.boo…

    Java 2023年5月20日
    00
  • Spring成员对象注入的三种方式详解

    下面是 Spring 成员对象注入的三种方式的详细攻略: 1. 属性注入 在 Spring 容器中,可以使用 @Autowired 或 @Resource 注解实现属性注入。其中,@Autowired 注解是 Spring 框架的注解,而 @Resource 注解是 JavaEE 的注解,并被 Spring 支持。 1.1 @Autowired 注解 @Au…

    Java 2023年6月15日
    00
  • Java面向对象程序设计:抽象类,接口用法实例分析

    Java面向对象程序设计:抽象类,接口用法实例分析 什么是抽象类? 抽象类是指不能被实例化的类,它只能被用作其他类的父类。抽象类通常用于定义一组相关的子类所需的方法和常量。 在Java中,可以通过在类的声明前加上abstract关键字来定义一个抽象类,抽象类中可以包含抽象方法和非抽象方法。 抽象方法是指没有实现体的方法,它只有定义(方法名、返回类型、参数列表…

    Java 2023年5月23日
    00
  • JSP的include指令的使用方法

    当我们开发Java Web应用时,JSP是不可避免的一种技术选择。其中,JSP的include指令则是一种非常方便的模块化开发方式。本攻略将详细介绍include指令的使用方法,希望能对JSP开发者们有所启发。 1. 指令简介 在JSP中,include指令通过将一个JSP页面中的内容包含到另一个JSP页面中来实现模块化开发。它的语法如下: <%@ i…

    Java 2023年6月15日
    00
  • IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能

    下面我将为您详细讲解“IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能”的完整攻略。 环境准备 首先,我们需要在本地环境中安装好如下软件: JDK、IDEA、Maven、MySQL等开发环境 SpringBoot、MyBatis、MySql等相关依赖包 创建SpringBoot项目 步骤如下: 打开IDEA,选择 Cr…

    Java 2023年5月20日
    00
  • 使用IDEA创建Web项目并发布到tomcat的操作方法

    下面是使用IDEA创建Web项目并发布到Tomcat的详细攻略。 1. 配置JDK 使用IDEA开发Web项目需要先配置JDK,可以按照以下步骤进行配置: 打开IDEA,选择File > Project Structure > SDKs。 如果已经有JDK,则可以选择已有的JDK,如果没有,则需要添加JDK。选择左上角的“+”按钮,选择JDK安装…

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