Java API – Date-SimpleDateFormat-Calendar的常用方法介绍

文章目录

*

+ 日期与时间
+
* Date类
* SimpleDateFormat类
* Calendar类

日期与时间

Date类

Date类概述

Date类代表当前所在系统的日期时间信息。

Date的构造器

名称说明public Date()创建一个Date对象,代表的是系统当前此刻日期时间。public Date(long time)把时间毫秒值转换成Date日期对象。

Date常用方法

名称说明getTime()返回从1970年1月1日 00:00:00走到此刻的总的毫秒数setTime(long time)设置日期对象的时间为当前时间毫秒值对应的时间

Date类获取到的时间对象有两种格式:

时间形式一:日期类表示时间的代码

public class DateDemo {
    public static void main(String[] args) {

        Date date = new Date();
        System.out.println(date);
    }
}

时间格式二: 事件毫秒值表示时间的代码

public class DateDemo {
    public static void main(String[] args) {

        Date date = new Date();

        System.out.println(date.getTime());
    }
}

时间毫秒值 -> 日期对象的两种方法

方式一: 通过Date类的构造器

public class DateDemo2 {
    public static void main(String[] args) {

        long time = System.currentTimeMillis();

        Date date1 = new Date(time);
        System.out.println(date1);
    }
}

方式二: 通过setTime方法根据毫秒值获取日期对象

public class DateDemo2 {
    public static void main(String[] args) {

        long time = System.currentTimeMillis();

        Date date2 = new Date();
        date2.setTime(time);
        System.out.println(date2);
    }
}

小结:

日期对象创建的两种方式:

public Date(); // 创建日期对象
public long getTime(); // 创建时间毫秒值

时间毫秒值恢复成日期对象的两种方式:

public Date(long time); // 方式一: 通过构造器
public void setTime(long time); // 方式二: 通过setTime方法

SimpleDateFormat类

上面我们分别讲解了获取日期对象格式和获取时间毫秒值的两种方式, 但是这两种展示时间的格式都不是我们想要的;
在开发中常见的展示时间的格式是类似于下面这样的:

  • 2022-4-23 08:20:20, 2022/4/23 08:20:20, 2022.4.23 08:20:20, 2022年4月23日 08:20:20

因此我们可以通过SimpleDateFormat类完成日期时间的格式化操作

Java API - Date-SimpleDateFormat-Calendar的常用方法介绍

SimpleDateFormat类的构造器:

构造器说明public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用指定的格式

SimpleDateFormat类的格式化方法:

格式化方法说明format(Date date)将日期格式化成日期/时间字符串format(Object time)将时间毫秒值式化成日期/时间字符串

格式化的时间形式的常用的模式对应关系如下

Java API - Date-SimpleDateFormat-Calendar的常用方法介绍

演示代码:

格式化日期对象

public class DateDemo3 {
    public static void main(String[] args) {

        Date date = new Date();

        SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日");
        String newDate = sf.format(date);
        System.out.println(newDate);
    }
}

格式化时间毫秒值

public class DateDemo3 {
    public static void main(String[] args) {
        Date date = new Date();

        long time = date.getTime();

        SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE");
        String newDate = sf.format(time);
        System.out.println(newDate);
    }
}

SimpleDateFormat可以解析字符串时间成为日期对象:

2011-11-11 11:11:22 -> Date日期对象

通过parse方法解析:

需要注意的是: 使用parse方法时编辑器会提醒代码异常, 我们需要alt+回车将异常抛出

解析方法说明parse(String source)从给定字符串的开始解析文本以生成日期

案例

例如: 将字符串 “2021年08月06日11点11分11秒” 转为日期对象

public class DateDemo4 {
    public static void main(String[] args) throws ParseException {
        String dateStr = "2021年08月06日11点11分11秒";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH点mm分ss秒");
        Date d = sdf.parse(dateStr);
        System.out.println(d);
    }
}

Calendar类

Calendar概述:

Calendar代表了系统此刻日期对应的日历对象。
Calendar是一个 抽象类,不能直接创建对象。

Calendar日历类创建日历的方法

方法名说明getInstance()获取当前日历对象


Calendar cal = Calendar.getInstance();

直接打印日历对象cal, 会显示日历对象的所有字段

Calendar cal = Calendar.getInstance();
System.out.println(cal);

Calendar常用方法

方法名说明get(int field)取日期中的某个字段信息。set(int field,int value)修改日历的某个字段信息。add(int field,int amount)为某个字段增加/减少指定的值getTime()拿到此刻日期对象。getTimeInMillis()拿到此刻时间毫秒值

get方法获取日历中某个字段的信息, 可以获取年月日时分秒等等

public class CalendarDemo {
    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));
        System.out.println(cal.get(Calendar.DAY_OF_YEAR));
    }
}

set方法修改日历中的某个字段

public class CalendarDemo {
    public static void main(String[] args) {

        Calendar cal = Calendar.getInstance();

        System.out.println(cal.get(Calendar.YEAR));

        cal.set(Calendar.YEAR, 2019);
        System.out.println(cal.get(Calendar.YEAR));
    }
}

add方法为某个字段增加/减少指定的值

public class CalendarDemo {
    public static void main(String[] args) {

        Calendar cal = Calendar.getInstance();

        cal.add(Calendar.YEAR, 10);

        cal.add(Calendar.MINUTE, 20);
        System.out.println(cal.get(Calendar.YEAR));
        System.out.println(cal.get(Calendar.MINUTE));
    }
}

getTime方法拿到此刻日期对象。

public static void main(String[] args) {

    Calendar cal = Calendar.getInstance();

    Date d = cal.getTime();
    System.out.println(d);
}

getTimeInMillis方法拿到此刻时间毫秒值

public static void main(String[] args) {

    Calendar cal = Calendar.getInstance();

    long time = cal.getTimeInMillis();
    System.out.println(time);
}

Original: https://blog.csdn.net/m0_71485750/article/details/127322877
Author: 蓝桉cyq
Title: Java API – Date-SimpleDateFormat-Calendar的常用方法介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/722209/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球