新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门)

yizhihongxing

新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门)

1. Date类

Java中的 java.util.Date 类用于表示日期和时间。它的构造方法如下:

public class Date {
  public Date() {
  }

  public Date(long date) {
  }
}

其中,Date() 的无参构造器会返回当前日期和时间;Date(long date) 则会返回从1970年1月1日00:00:00 GMT(格林威治标准时间)以来的时间量。这个时间量以毫秒为单位。

下面是一个示例,说明如何使用 Date 来获取当前日期和时间:

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

运行结果如下:

Wed Jan 27 10:59:53 CST 2021

2. SimpleDateFormat类

Java中的 SimpleDateFormat 类用于以自定义格式化输出日期。它的构造方法如下:

public class SimpleDateFormat extends DateFormat {
  public SimpleDateFormat(String pattern) {
  }

其中,pattern 是日期格式化的模式字符串。下面是一些常用的模式字符串:

模式字符 说明
yyyy 年份,如2014
MM 月份,如08
dd 天数,如05
HH 24小时制的小时数,如14
hh 12小时制的小时数,如05
mm 分钟数,如45
ss 秒数,如30
S 毫秒数,如234
E 星期几,如星期五(Fri)
a 上午或下午,如上午(am)、下午(pm)

下面是一个示例,说明如何使用 SimpleDateFormat 来自定义日期的格式输出:

import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    System.out.println(sdf.format(date));
  }
}

运行结果如下:

2021年01月27日 11:05:28

3. Calendar类

Java中的 Calendar 类是用于进行日期和时间计算的抽象基类。它的实例可以获取当前系统时间,以便进行日期和时间的计算。它的构造方法如下:

public abstract class Calendar {
  protected Calendar() {
  }

  public static synchronized Calendar getInstance() {
  }

  public static synchronized Calendar getInstance(TimeZone zone) {
  }
}

其中,getInstance() 方法可以用于获取默认时间区域的日历。getInstance(TimeZone zone) 方法可以用于获取指定时区的日历。下面是一个示例,说明如何使用 Calendar 类来获取当前的年、月、日:

import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    System.out.println("年份:" + cal.get(Calendar.YEAR));
    System.out.println("月份:" + (cal.get(Calendar.MONTH) + 1));
    System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
  }
}

运行结果如下:

年份:2021
月份:1
日:27

4. 示例

最后,我们来看一个完整的示例。这个示例中,我们将会用到 DateSimpleDateFormatCalendar 类,以实现计算两个日期之间的天数。

import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    try {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Date date1 = sdf.parse("2020-01-01");
      Date date2 = sdf.parse("2021-01-01");

      Calendar cal1 = Calendar.getInstance();
      cal1.setTime(date1);
      Calendar cal2 = Calendar.getInstance();
      cal2.setTime(date2);

      int days = 0;
      while (cal1.compareTo(cal2) <= 0) {
        if (cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && cal1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
          days++;
        }
        cal1.add(Calendar.DAY_OF_YEAR, 1);
      }
      System.out.println("两个日期之间的工作日数为:" + days);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

运行结果如下:

两个日期之间的工作日数为:261

这个示例中,我们首先使用 SimpleDateFormat 类将两个日期字符串转换成 Date 对象。接着,我们将这两个 Date 对象分别转换成 Calendar 对象,并比较它们之间的时间差,以计算出两个日期之间的天数。在计算的过程中,我们还需要排除周末,只计算工作日的数量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门) - Python技术站

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

相关文章

  • java暴力匹配及KMP算法解决字符串匹配问题示例详解

    Java暴力匹配及KMP算法解决字符串匹配问题 1. 概述 在字符串匹配问题中,有两种经典的算法:暴力匹配和KMP算法。暴力匹配是最简单的字符串匹配算法,其思路是将字符串的每个子串与目标字符串进行匹配。KMP算法是一种更高效的字符串匹配算法,它通过预处理字符串的next数组来避免不必要的字符比较,从而在匹配过程中提高效率。 2. Java暴力匹配 暴力匹配算…

    Java 2023年5月19日
    00
  • SpringBoot整合Keycloak实现单点登录的示例代码

    下面我将为您详细讲解“SpringBoot整合Keycloak实现单点登录的示例代码”的完整攻略。 1. 准备工作 在开始整合之前,我们需要准备以下工具和环境: JDK 1.8或以上版本 Maven Keycloak服务器 IntelliJ IDEA或Eclipse等IDE 2. 创建Spring Boot项目 首先,我们需要创建一个Spring Boot项…

    Java 2023年5月20日
    00
  • Java实现查找算法的示例代码(二分查找、插值查找、斐波那契查找)

    Java实现查找算法的示例代码 在Java中,实现查找算法的方式有很多,包括线性查找、二分查找、插值查找、哈希查找等等。本文将详细讲解Java中实现三种常见的查找算法:二分查找、插值查找、斐波那契查找。 二分查找 二分查找也称为折半查找,是一种效率较高的查找算法。二分查找的条件是数据必须是有序的,每次查找都是将查找区间缩小一半,直到查找到目标或者查找区间为空…

    Java 2023年5月19日
    00
  • 最详细的Java循环结构解析之for循环教程(适合小白)

    最详细的Java循环结构解析之for循环教程(适合小白)攻略 概述 for 循环是一种经典的循环结构,可以重复执行指定次数的代码块。它适合用于循环执行次数已知的情况下,通过循环体语句来实现重复执行某些操作。 语法 for 循环的语法如下: for (初始化语句; 布尔表达式; 更新语句) { // 执行希望循环的操作 } 其中: 初始化语句 (optiona…

    Java 2023年5月26日
    00
  • Springmvc和ajax如何实现前后端交互

    在 Web 开发中,前后端交互是非常重要的。Spring MVC 和 Ajax 可以很好地实现前后端交互。本文将详细讲解 Spring MVC 和 Ajax 如何实现前后端交互的完整攻略,并提供两个示例说明。 1. Spring MVC 和 Ajax 简介 Spring MVC 是一个基于 Java 的 Web 框架,它可以帮助我们构建 Web 应用程序。A…

    Java 2023年5月18日
    00
  • MySQL基于java实现备份表操作

    MySQL基于Java实现备份表操作的攻略主要分为以下几个步骤: 引入相关依赖 首先,我们需要在项目中引入mysql-connector-java这个库的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: <dependency> <groupId>mysql</groupId> <artifactI…

    Java 2023年5月20日
    00
  • Java实现获取行政区划的示例代码

    下面我将为您详细讲解“Java实现获取行政区划的示例代码”的完整攻略,并给出两条示例。 前置知识 在学习实现获取行政区划的示例代码之前,您需要掌握以下知识点: Java基础语法 HTTP请求 JSON数据格式 具体步骤 1.获取接口API 首先,你需要在网上找到一个提供行政区划API的接口。这里我们以高德地图API的行政区划查询接口为例: https://r…

    Java 2023年5月20日
    00
  • Java 对象深拷贝工具类的实现

    概述: Java 对象深拷贝是指将一个对象完全复制另一个对象,即所有属性和属性值都被复制,并且两个对象之间没有相互影响。在 Java 开发中经常会使用对象深拷贝,比如在进行对象传参、克隆等场合都需要进行对象深拷贝。本文将详细讲解 Java 对象深拷贝工具类的实现。 实现: Java 中提供了两种方式实现深拷贝:Serializable 和 Cloneable…

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