Date,SimpleDateFormate类和Calendar类

发布时间:2024年01月18日

目录

?

一、Date

二、SimleDateFormate类

? ? ? ? 作用

练习一

练习二

三、Calendar类

? ? ? ? 概述

? ? ? ? ? ? ? ? Calendar小结


?

一、Date

构造方法说明
public Date()创建Date对象,表示一个时间
public Date(long date)创建Date对象,表示指定时间
public void setTime(long time)设置/修改时间毫秒值
public long getTime()获取时间对象的毫秒值

? ? ? ? 直观看可能有点不理解,那就上代码:

import java.util.Date;

public class dateDemo {
    public static void main(String[] args) {
        //1、创建一个表示时间的对象
        Date d1 = new Date();
        //打印结果为系统时间(即电脑上显示的时间)
        System.out.println("电脑上显示的时间:");
        System.out.println(d1);
        //2、创建对象表示个指定的时间
        Date d2 = new Date(0L);
        //这个0表示从时间结点开始过了0毫秒的时间
        System.out.println("过了_时间的输出:");
        System.out.println(d2);
        //3、setTime()表示修改时间
        d2.setTime(1000L);
        System.out.println("setTime()的输出:");
        System.out.println(d2);
        //getTime()获取时间的毫秒对象
        long time = d2.getTime();
        System.out.println("获取时间的毫秒为:");
        System.out.println(time);
    }
}

? ? ? ? 运行截图如下:

c99bfc8f667048229a510cb46271a6c2.png

二、SimleDateFormate类

? ? ? ? 作用:

? ? ? ? ? ? ? ? 1、格式化:把时间变成我们喜欢的格式

? ? ? ? ? ? ? ? 2、解析:把字符串便是的时间变成Date对象

构造方法说明
public SimpleDateFormate()构造一个类,使用默认格式
public SimpleDateFormat(String pattern)构造一个类,使用指定格式
常用方法说明
public final String formate(Date date)格式化(日期对象→字符串)
oublic Date parse(String source)解析(字符串→日期对象)

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

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y:年? ? ? ? M:月? ? ? ? d:日? ? ? ? H:时? ? ? ? m:分? ? ? ? s:秒(小写!)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? eg.2023-11-11 13:27:06→yyyy-MM-dd HH:mm:ss

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2023年11月11日 13:27:06→yyyy年MM月dd日 HH:mm:ss

? ? ? ? 写个题来练练手:

练习一:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class simpledateformate {
    public static void main(String[] args) throws ParseException {
        //1.利用空参构造创建simpleDateFormat对象,默认格式
        SimpleDateFormat sdf1 = new SimpleDateFormat();
        Date date1 = new Date(0L);
        String newDate1 = sdf1.format(date1);
        System.out.println(newDate1);
        //2.利用带参构造创建simpleDateFormat对象,指定格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss");
        String newDate2 = sdf2.format(date1);
        System.out.println(newDate2);

        //星期可以用E表示
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd月 HH:mm:ss E");
        String newDate3 = sdf3.format(date1);
        System.out.println(newDate3);




        //解析:
        //定义一个字符串
        String str = "2022.11.11 11:11:11";
        //利用空参构造创建simpleDateFormat对象
        SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
        Date date2 = sdf4.parse(str);
        System.out.println(date2);
    }
}

? ? ? ? 代码运行结果如下:

96580013588d4e41be008db3a6d65882.png

提示:大家的运行环境默认格式可能各不一样,知道这个知识点就行

练习二:

题目:

? ? ? ? 假设:你的出生年月日为:2000-11-11。请用字符串表示这个数据,并将其转换为:2000年11月11日。

? ? ? ? 代码如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class simpledateformateDEMO1 {
    public static void main(String[] args) throws ParseException {
        /*假设,你的出生年月日为: 2000-11-11
         *请用字符串表示这个数据,并将其转换为:2000年11月11日*/
        String str = "2000-11-11";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf1.parse(str);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
        String date1 = sdf2.format(date);
        System.out.println(date1);
    }
}

输入结果截图为:

7b7489e32edd4e8f8ae754cc79f788fb.png

三、Calendar类

? ? ? ? 概述:

? ? ? ? ? ? ? ? 1、Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日。

? ? ? ? ? ? ? ? 2、细节:Calendar是一个抽象类,不能直接创建对象

? ? ? ? ? ? ? ? 3、获取Calendar日历类对象的方法

方法名说明
public static Calendar getInstance获取当前时间的日历对象

?

? ? ? ? ? ? ? ? 4、Calendar常用方法

方法名说明
public final Date getTime()获取日期对象
public final setTime(Date date)给日历设置日期对象
public long getTimeInMills()得到时间毫秒值
public void setTimeInMills(long mills)取日历中的某个字段信息
public void set(int field, int value)修改日历的某个字段信息
public int get(int field)取日历中的某个字段信息
public void add(int field, int amount)为某个字段增加或减少指定值

代码及相关注意事项如下:

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {
    public static void main(String[] args) {
        //1、获取日历对象
        /*细节1:
         *       Calendar不能直接new,而是通过静态对象(getInstance)来直接获取子类对象
         * 细节2:
         *       月份:范围:0~11。如果获取出来的是0,那么实际上就是一月
         *       星期:在外国人眼里,一周当中的第一天就是星期日。
         *           所以1(星期日),2(星期一),3(星期二),4(星期三),5(星期四),6(星期五),7(星期六)
         * 底层原理:
         *       会根据系统的不同时区来获取不同的日历对象(默认当前时间),会把时间中的纪元,年,月,日,时,分,秒等都放到一个数组当中*/
        Calendar c = Calendar.getInstance();
        System.out.println(c);
        System.out.println("---------------------------------");
        //修改日历中的时间
        //1、通过date修改
        Date d = new Date(0L);
        c.setTime(d);
        System.out.println(c);
        System.out.println("---------------------------------");
        //2、通过毫秒值进行修改
        Calendar c1 = Calendar.getInstance();
        Date time = c1.getTime();
        c.setTime(time);
        System.out.println(c);
        System.out.println("---------------------------------");

        //Java在Calendar类中,把索引对应的数字定义为了常量
        /*  1,表示年YEAR
         *   2,表示月MONTH
         *   3,表示一年中的第几周WEEK_OF_YEAR
         *   4,表示一个月中当中的第几周WEEK_OF_MONTH
         *   5,表示一个月当中的第几天DATE或者DAY_OF_MONTH
         *   6,表示一年当中的第几天DAY_OF_YEAR
         *   7,表示一周当中的第几天DAY_OF_WEEK*/
        int year = c.get(Calendar.YEAR);
        //因为月份是0~11所以在原来的基础上+1就是我们看到的日历上的月份了
        int month = c.get(Calendar.MONTH) + 1;
        int day = c.get(Calendar.DATE);
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(year + "年" + month + "月" + day + "日" + weekValue(week));
        System.out.println("---------------------------------");

        //修改日历的方法
        c.set(Calendar.YEAR,2000);
        int year1 = c.get(Calendar.YEAR);
        int month1 = c.get(Calendar.MONTH) + 1;
        int day1 = c.get(Calendar.DATE);
        int week1 = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(year1 + "年" + month1 + "月" + day1 + "日" + weekValue(week1));
    }
    //定义一个方法,将week值传入,输出星期几
    public static String weekValue(int index){
        String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        return week[index];
    }

}

注:前三条虚线内的内容代码截图如下:

08c9e52f349a449299fdf1656d0b4fb6.png

代码总截图如下:

d43603826bd4406dabd43c79689e3762.png

? ? ? ? ? ? ? ? Calendar小结:

? ? ? ? ? ? ? ? ? ? ? ? 1、Calendar表示一个时间的日历对象。

? ? ? ? ? ? ? ? ? ? ? ? 2、通过getInstance方法后去对象

? ? ? ? ? ? ? ? ? ? ? ? 3、常见方法:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? setXxx:修改? ? ? ? getXxx:获取? ? ? ? add:在原有的基础上进行增加或减少

? ? ? ? ? ? ? ? ? ? ? ? 4、细节点:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1·日历中月份的范围:0~11

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2·日历中星期的特点:一周当中的第一天是星期日

?

文章来源:https://blog.csdn.net/2301_78496658/article/details/135659988
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。