JavaSE基础学习——日期与时间

1. Date

1.1 Date类概述

  • Date类的对象在Java中代表的是当前所在系统的此刻日期时间。

1.2 Date的构造器

在这里插入图片描述

1.3 Date的常用方法

在这里插入图片描述

import java.util.Date;

/**
    目标:学会使用Date类处理时间,获取时间的信息
 */
public class DateDemo1 {
    public static void main(String[] args) {
        // 1、创建一个Date类对象,代表系统刺客日期时间对象
        Date d = new Date();
        System.out.println(d);

        // 2、获取时间毫秒值
        long time = d.getTime();
        System.out.println(time);
//        long time1 = System.currentTimeMillis();
//        System.out.println(time1);

        System.out.println("-----------------------");
        // 1、得到当前时间毫秒值
        Date d1 = new Date();
        System.out.println(d1);

        // 2、 当前时间往后走1小时121秒
        long time2 = System.currentTimeMillis();
        time2 += (60 * 60 + 121) * 1000;

        // 3、把时间毫秒值转换成对应的日期对象。
        // Date d2 = new Date(time2);
        // System.out.println(d2);

        Date d3 = new Date(time2);
        d3.setTime(time2);
        System.out.println(d3);
    }
}

2. SimpleDateFormat

2.1 SimpleDateFormat类作用

  • 可以对Date对象或时间毫秒值格式化成我们喜欢的时间形式。
  • 也可以把字符串的时间形式解析成日期对象。

2.2 SimpleDateFormat的构造器

在这里插入图片描述

2.3 SimpleDateFormat的格式化方法

在这里插入图片描述

2.4 SimpleDateFormat解析字符串时间成为日期对象

在这里插入图片描述

import javax.xml.crypto.Data;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatDemo2 {
    public static void main(String[] args) throws ParseException {
        // 目标: 学会使用SimpleDateFormat解析字符串时间成为日期对象。
        // 有一个时间 2022年04月06日 11:11:11 往后 2天 14小时 49分 06秒后的时间是多少。
        // 1、把字符串时间拿到程序中来
        String dataStr = "2022年04月06日 11:11:11";

        // 2、把字符串时间解析成日期对象(本节重点):形式必须与被解析时间的形式完全一样,否则运行时解析报错!
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(dataStr);

        // 3、往后走2天 14小时 49分 06秒
        long time = d.getTime() + (2L*24*60*60 + 14*60*60 + 49*60 + 6) * 1000;

        // 4、格式化这个时间毫秒值就是结果
        System.out.println(sdf.format(time));
    }
}

2.5 练习

在这里插入图片描述

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

public class SimpleDateFormatTest3 {
    public static void main(String[] args) throws ParseException {
        // 1、开始和结束时间
        String startTime = "2021-11-11 00:00:00";
        String endTime = "2021-11-11 00:10:00";

        // 2、小贾 小皮
        String xiaoJia = "2021-11-11 00:03:47";
        String xiaoPi = "2021-11-11 00:10:11";

        // 3、解析他们的时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1 = sdf.parse(startTime);
        Date d2 = sdf.parse(endTime);
        Date d3 = sdf.parse(xiaoJia);
        Date d4 = sdf.parse(xiaoPi);

        if(d3.after(d1) && d3.before(d2)){
            System.out.println("小贾秒杀成功,可以发货了!");
        }else {
            System.out.println("小贾秒杀失败!");
        }

        if(d4.after(d1) && d4.before(d2)){
            System.out.println("小皮秒杀成功,可以发货了!");
        }else {
            System.out.println("小皮秒杀失败!");
        }
    }
}

3. Calendar

3.1 Calendar概述

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

3.2 Calendar日历类创建日历对象的方法:

在这里插入图片描述

3.3 Calendar常用方法

在这里插入图片描述

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

/**
 目标:日历类Calendar的使用,可以得到更加丰富的信息。

 Calendar代表了系统此刻日期对应的日历对象。
 Calendar是一个抽象类,不能直接创建对象。
 Calendar日历类创建日历对象的语法:
 Calendar rightNow = Calendar.getInstance();
 Calendar的方法:
 1.public static Calendar getInstance(): 返回一个日历类的对象。
 2.public int get(int field):取日期中的某个字段信息。
 3.public void set(int field,int value):修改日历的某个字段信息。
 4.public void add(int field,int amount):为某个字段增加/减少指定的值
 5.public final Date getTime(): 拿到此刻日期对象。
 6.public long getTimeInMillis(): 拿到此刻时间毫秒值
 小结:
 记住。
 */
public class CalendarDemo1 {
    public static void main(String[] args) {
        // 1、拿到系统此刻日历对象
        Calendar cal = Calendar.getInstance();
        System.out.println(cal);

        // 2、获取日历的信息:public int get(int field):取日期中的某个字段信息。
        int year = cal.get(Calendar.YEAR);
        System.out.println(year);
        int mm = cal.get(Calendar.MONTH) + 1;
        System.out.println(mm);
        int days = cal.get(Calendar.DAY_OF_YEAR);
        System.out.println(days);

        // 3、public void set(int field,int value):修改日历的某个字段信息。
//        cal.set(Calendar.HOUR , 12);
//        System.out.println(cal);

        // 4.public void add(int field,int amount):为某个字段增加/减少指定的值
        // 请问64天后是什么时间
        cal.add(Calendar.DAY_OF_YEAR, 64);
        cal.add(Calendar.MINUTE, 59);

        //  5.public final Date getTime(): 拿到此刻日期对象。
        Date d = cal.getTime();
        System.out.println(d);

        //  6.public long getTimeInMillis(): 拿到此刻时间毫秒值
        long time = cal.getTimeInMillis();
        System.out.println(time);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值