常用类—Date类、SimpleDateFormat类、Calendar类

1.Date类

(1)概述:类 Date 表示特定的瞬间,精确到毫秒。
(2)构造方法:

方法作用
public Date()根据当前的默认毫秒值创建日期对象
public Date(long date)把一个long类型的毫秒值转换成一个日期对象

(3)成员方法:

方法作用
public long getTime()获取一个日期对象对象毫秒值
public void setTime(long time)给一个日期对象设置上指定的毫秒值

(4)Date和long互相转换
Date 转换为 long :调用getTime方法
long转换为Date :可以使用构造方法或使用setTime(long time)

public class MyTest {
    public static void main(String[] args) {
        Date date = new Date();
        //Fri May 21 02:23:16 CST 2021
        System.out.println(date);
        //月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月
        int month = date.getMonth();
        System.out.println(month);
        //返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
        long time = date.getTime();  //跟 System.currentTimeMillis();
        System.out.println(time);

    }
}

在这里插入图片描述

2.SimpleDateFormat类

(1)概述:可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象。
(2)构造方法:

方法作用
public SimpleDateFormat()使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern)使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象

(3)规则的定义:

字母含义
y
M
d
H
m
s

(4)成员方法:

方法作用
public String format(Date date)把一个日期对象格式化成一个字符串
public Date parse(String dateStr)把一个日期字符串解析成一个日期对象 注意要以指定格式解析
public class MyTest {
    public static void main(String[] args) {

        Date date = new Date();
        //SimpleDateFormat 格式化日期的类
        //空参构造:采用的是默认格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        String dateStr = simpleDateFormat.format(date);
        System.out.println(dateStr);

        System.out.println("==================================");

        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年M月dd日 HH时mm分ss秒 E D z Z");
        String format = simpleDateFormat2.format(date);
        System.out.println(format);

    }
}

在这里插入图片描述

3.Calendar类

(1)概述:Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象。
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
(2)成员方法:

方法作用
public static Calendar getInstance()使用默认时区和语言环境获得一个日历对象
public int get(int field)获得给定日历字段对应的值 field通过Calendar提供的字段来拿
public void add(int field,int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date)设置日历时间 年月日
public class MyTest3 {
    public static void main(String[] args) {
        Calendar instance = Calendar.getInstance();
        //instance.set(2000, 11, 12);
        //设置年月日,时分秒
        instance.set(Calendar.YEAR, 2005);
        int i = instance.get(Calendar.YEAR);

        System.out.println(i);
        int i1 = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(i1);


    }
}

在这里插入图片描述

public class MyTest4 {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        //给日期字段,加上或减去对应的时间量 当然 你传入负数值 就是减去
        calendar.add(Calendar.YEAR, -2);
        int i = calendar.get(Calendar.YEAR);
        System.out.println(i);
    }
}

在这里插入图片描述

4.案例:你来到这个世界多少天

public class MyTest {
    public static void main(String[] args) throws ParseException {
        //计算你来这个世界多少天
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的生日 格式为1980-01-01");
        String brithdataStr= scanner.nextLine();

        //将日期字符串转换成日期对象
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = simpleDateFormat.parse(brithdataStr);
        //获取生日日期对象对应的毫秒值
        long brithdayTime = date.getTime();
        //获取系统当前对应的毫秒值
        long currentTime = System.currentTimeMillis();

        long time = (currentTime - brithdayTime) / (1000 * 60 * 60 * 24);
        System.out.println("你来到这个世界"+time+"天");


    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值