学习-Java常用类之Date类

目录

任务描述

相关知识

int compareTo(Date date):比较调用此方法的 Date 对象和指定 Date 对象;

long getTime( ):返回此对象表示的毫秒数

void setTime(long time):根据毫秒数设置时间和日期;

String toString( ):转换 Date 对象为 String 表示形式,并返回该字符串。

编程要求

测试说明

代码展示 


任务描述

本关任务:使用 Date 类的定义与方法,完成日期格式的之间的比较和格式化转换。

相关知识

java.util 包提供了 Date 类来封装当前的日期和时间,我们可以通过该类来操作时间和日期。在使用该类之前,我们需要先导入 java.util.Date 类。

  1. import java.util.Date;

Date 类提供了两种构造函数来实例化 Date 对象:

  • 使用当前日期和时间来初始化对象;
    1. Date date = new Date();
  • 第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
    1. Date date1 = new Date(1581997363000L);

接下来我们来看 Date 类的一些常用方法,见下表。

方法描述
boolean after(Date date)若当调用此方法的 Date 对象在指定日期之后返回 true,否则返回 false。
boolean before(Date date)若当调用此方法的 Date 对象在指定日期之前返回 true,否则返回 false。
Object clone( )返回此对象的副本。
int compareTo(Date date)比较当调用此方法的 Date 对象和指定日期。两者相等时候返回 0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
boolean equals(Object date)当调用此方法的 Date 对象和指定日期相等时候返回 true,否则返回 false。
long getTime( )返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
void setTime(long time)用自 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒数设置时间和日期。
String toString( )转换 Date 对象为 String 表示形式,并返回该字符串。

例子:

  • boolean after(Date date):若当调用此方法的 Date 对象在指定日期之后返回 true,否则返回 false;
    1. Date date = new Date(); // 使用当前时间来创建对象
    2. System.out.println(date);
    3. Date date1 = new Date(1581997363000L); // 使用当前参数创建对象
    4. System.out.println(date1);
    5. boolean after = date.after(date1); // 判断 date 是否在指定日期之后
    6. System.out.println(after);
    执行结果:
    Tue Feb 18 12:02:40 CST 2020
    1. Tue Feb 18 11:42:43 CST 2020
    2. true

注意:因为有时区问题,我们是在东八区,所以时间上加了 8 个小时.

  • int compareTo(Date date):比较调用此方法的 Date 对象和指定 Date 对象;

    1. Date date = new Date(); // 使用当前时间来创建对象
    2. System.out.println(date);
    3. Date date1 = new Date(1581997363000L); // 使用当前参数创建对象
    4. System.out.println(date1);
    5. int i = date.compareTo(date1);// 比较调用此方法的 date 对象和指定 date1 对象
    6. System.out.println(i);

    执行结果:

    1. Tue Feb 18 12:05:43 CST 2020
    2. Tue Feb 18 11:42:43 CST 2020
    3. 1
  • long getTime( ):返回此对象表示的毫秒数

    1. Date date1 = new Date(1581997363000L); // 使用当前参数创建对象
    2. System.out.println(date1);
    3. long time = date1.getTime(); // 返回当前对象的毫秒
    4. System.out.println(time);

    执行结果:

    1. Tue Feb 18 11:42:43 CST 2020
    2. 1581997363000
  • void setTime(long time):根据毫秒数设置时间和日期;

    1. Date date = new Date(); // 使用当前时间来创建对象
    2. System.out.println(date);
    3. date.setTime(1581997363000L); // 根据毫秒数设置时间
    4. System.out.println(date);

    执行结果:

    1. Tue Feb 18 12:16:48 CST 2020
    2. Tue Feb 18 11:42:43 CST 2020
  • String toString( ):转换 Date 对象为 String 表示形式,并返回该字符串。

    1. Date date = new Date(); // 使用当前时间来创建对象
    2. System.out.println(date);
    3. String s = date.toString(); // 将 Date 对象转换为字符串形式
    4. System.out.println(s);

通过上面的学习,我们对 Date 类已经有了一定的了解,但是我们发现上面的日期格式和我们生活中的日期格式不太相同,那我们该怎么办呢?

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

要想使用该类,我们首先需要导包。

  1. import java.text.SimpleDateFormat;

创建一个 SimpleDateFormat 对象:

  1. SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

例子:

  • 将日期格式转换为格式化的日期字符串;

    1. Date date = new Date(); // 使用当前时间来创建对象
    2. System.out.println(date);
    3. SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss"); // 创建日期格式化类对象
    4. String format = ft.format(date); // //将日期对象转换为字符串
    5. System.out.println(format);

    执行结果:

    1. Tue Feb 18 12:37:34 CST 2020
    2. 2020-02-18 12:37:34
  • 将 2016年06月18日 12:37:34 转换为日期格式

    1. String s1 = "2016年06月18日 12:37:34"; // 创建一个日期格式的字符串
    2. SimpleDateFormat ft = new SimpleDateFormat ("yyyy年MM月dd日 hh:mm:ss");
    3. Date date1 = null;
    4. try {
    5. date1 = ft.parse(s1); // 将字符串转换为日期格式
    6. } catch (ParseException e) {
    7. e.printStackTrace();
    8. }
    9. System.out.println(date1);

    执行结果:

    1. Sat Jun 18 00:37:34 CST 2016

注意:parse() 需要抛出 ParseException 异常。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成日期格式的之间的比较和格式化转换,具体要求如下:

  • 获取键盘输入的 long 类型的值,该值表示毫秒数,以该值为参数创建一个 Date 对象;

  • 以当前时间创建 Date 对象;

  • 将根据键盘输入所创建的日期转换为“xxxx/xx/xx xx时xx分xx秒”这种格式后输出(24 小时制);

  • 比较根据键盘输入所创建的日期是否在当前时间之前,输出格式为:“t时间在当前时间之前:xx”,其中 t 为 上一要求转换后的结果,xx 为判断后的结果。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。

测试输入:

  1. 1518927152000

预期输出:

  1. 2018/02/18 04时12分32秒
  2. 2018/02/18 04时12分32秒时间在当前时间之前:true

注意:此处冒号为中文冒号,另外平台测试所用时间为 UTC,也就是世界统一时间,并不是北京时间,所以可能与你本地结果相差八个小时。


开始你的任务吧,祝你成功!

代码展示 

/**

 * 完成日期格式的之间的比较和格式化转换。

 */

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class TestDate {

    public static void main(String[] args) {

        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

        /********** Begin **********/

          // 获取键盘输入的 long 类型的值,该值表示毫秒数,以该值为参数创建一个 Date 对象

        Scanner sc = new Scanner(System.in);

        String string = sc.next();

        long miao =Long.parseLong(string);

        Date date1 = new Date(miao);

        // 以当前时间创建 Date 对象

        Date date = new Date();

        //将根据键盘输入所创建的日期转换为“xxxx/xx/xx xx时xx分xx秒”这种格式后输出

        SimpleDateFormat ft = new SimpleDateFormat ("yyyy/MM/dd hh时mm分ss秒"); // 创建日期格式化类对象

        String format = ft.format(date1); // //将日期对象转换为字符串

        System.out.println(format);

        // 比较根据键盘输入所创建的日期是否在当前时间之前

        boolean after = date.after(date1); // 判断 date 是否在指定日期之后

        System.out.print(format+"时间在当前时间之前:"+after);

        /********** End **********/

    }

}

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DateJava常用的日期,用于表示日期和时间。它提供了很多方法来获取和设置日期和时间,如获取年份、月份、日期、小时、分钟、秒等。同时,它还可以进行日期和时间的比较、格式化等操作。在Java中,Date已经被废弃,建议使用java.time包中的来代替。 ### 回答2: DateJava常用之一,它可以表示一个日期和时间。在Java.util包中,使用Date创建一个日期对象,可以表示自1970年1月1日00:00:00 GMT以来的毫秒数。 Date有两个构造方法,一个没有参数,另一个接受一个long型的参数,这个参数是从1970年1月1日00:00:00 GMT开始计数的毫秒数。Date的toString()方法返回格式化的日期时间字符串。 除了基本的构造函数和toString()方法,Date还提供了许多实用的方法,如equals(),compareTo(),before()和after()等。这些方法可以帮助我们比较和判断两个日期的大小和顺序。 应用场景方面,Date广泛用于日志记录、定时任务及数据存储等领域,而在开发中,日期和时间的处理和转换非常的常见。 最后,需要注意的是,Java 8之后,推荐使用新的java.time包来处理日期和时间。它提供了更多的方法和更好的性能,尤其是线程安全方面有明显的优势。因此,在新的开发中,建议使用java.time包来处理日期和时间。 ### 回答3: Java中的Date是一个非常常用的日期时间操作,它封装了表示日期和时间的特定瞬间的毫秒数。Date提供了许多有用的方法来获取和格式化日期和时间信息,并且能够进行日期和时间的计算和比较。 具体来说,Date提供了以下几个常用的方法: 1. getTime()方法:返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 2. toString()方法:将此 Date 转换为 String,格式为默认格式(例如:"Tue Aug 31 23:59:59 GMT+08:00 2021")。 3. after(Date when)方法:判断此 Date 对象是否在when之后。 4. before(Date when)方法:判断此 Date 对象是否在when之前。 5. equals(Object obj)方法:判断此 Date 对象是否与obj表示的对象相等。 6. compareTo(Date anotherDate)方法:将此 Date 与另一个 Date 进行比较。 7. setTime(long time)方法:设置此 Date 对象的时间,以表示自标准基准时间(称为“纪元”)以来指定的毫秒数。 另外,在使用Date时也需要注意:Date的大多数方法已经被废弃,因为它们不考虑区域设置,而且大多数方法都被Calendar所替代,因此建议使用Calendar来代替Date。 总之,Java中的Date是一个非常常用的日期时间操作,在Java编程中使用频率也非常高。熟练掌握Date的使用方法,有助于我们在Java编程中进行日期时间的处理和计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值