java 日期与时间类(Date 、SimpleDateFormat、Calendar)

Data

介绍

 Date常用方法

getTime()与获得时间毫秒值的方法

 Date构造器

案例演示

SimpleDateFormat

介绍

格式化规则

SimpleDateFormat构造器

 SimpleDateFormat格式化方法

用法演示

解析字符串时间 

Calendar

介绍

创建日历对象的方法

Calendar常用方法

方法演示 


Data

介绍

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

import java.util.Date;

public class Date_test {
    public static void main(String[] args) {
        //创建Date类的对象 代表系统此刻日期时间对象
        Date t = new Date();
        System.out.println(t); //输出为当前日期时间而并非地址
                                //说明内部已重写toString方法
    }
}

 Date常用方法

名称说明
public Date()创建一个Date对象,代表的是系统当前此刻日期时间。
public long getTime()返回从1970年1月1日    00:00:00走到此刻的总的毫秒数

getTime()与获得时间毫秒值的方法

        //获得时间毫秒值
            //getTime()方法
        long time1 = t.getTime();
        System.out.println(time1);

            //使用System.currentTimeMillis()
        long time2 = System.currentTimeMillis();
        System.out.println(time2);
    }
}

 

 Date构造器

将时间毫秒值转为Date日期对象:

public Date(long time)

设置日期对象的时间为当前时间毫秒值对应的时间:

public void setTime(long time)

案例演示

请计算出当前时间往后走1小时121秒之后的时间是多少。

思路1:

        //当前时间
        Date now = new Date();
        System.out.println("当前时间"+now);

        //得到当前时间毫秒值
        long time1 = System.currentTimeMillis();
        time1 += (60*60+121)+1000; //当前时间加上一小时121秒的时间

        //利用Date构造器将时间毫秒值转换成Date日期对象
        Date t = new Date(time1);
        System.out.println("一小时121秒后的时间"+t);

思路2: 

        //当前时间
        Date now = new Date();
        System.out.println("当前时间"+now);

        //得到当前时间毫秒值
        long time1 = System.currentTimeMillis();
        time1 += (60*60+121)+1000; //当前时间加上一小时121秒的时间
        
        //使用setTime()得到时间毫秒值转换成Date日期对象
        Date t = new Date();
        t.setTime(time1);
        System.out.println("一小时121秒后的时间"+t);

 

SimpleDateFormat

介绍

可以对Date对象或时间毫秒值格式化成我们喜欢的形式

可以将字符串形式解析为日期时间对象

格式化规则

 每个字符格式化时代表的含义(大小写时要规范):
  y	年
  M	月
  d	日
  H	时
  m	分
  s	秒
  E 星期
  a 取上午或下午

SimpleDateFormat构造器

构造器说明
public SimpleDateFormat​(String pattern)创建简单日期格式化对象,并封装格式化的形式信息
public SimpleDateFormat​()创建简单日期默认格式化对象

SimpleDateFormat格式化方法

格式化方法

说明

public final String format(Date date)

将日期格式化成日期/时间字符串

public final String format(Object time)

将时间毫秒值式化成日期/时间字符串

用法演示

格式化日期对象 :

 //创建对象
        Date d = new Date();
        System.out.println(d);

        //格式化这个日期时间对象_指定格式化形式
        SimpleDateFormat a = new SimpleDateFormat("yyyy年 MM月 dd日 HH时 mm分 ss秒 EEE a");
        String r = a.format(d);
        System.out.println(r);

格式化时间毫秒值 :

 SimpleDateFormat a = new SimpleDateFormat("yyyy年 MM月 dd日 HH时 mm分 ss秒 EEE a");
        long time = System.currentTimeMillis() + 121 * 1000;
        String s = a.format(time);
        System.out.println(s);

解析字符串时间 

解析方法

说明

 public Date parse​(String source)

  从给定字符串的开始解析文本以生成日期

 案例:

2022年07月6日 12:12:12 往后2天 14 时40分01秒后的时间是多少

        //将字符串复制到程序中
        String dates = "2022年07月6日 12:12:12 ";

        //将字符串时间解析成日期时间对象(形式必须完全一样不然就会报错)
        SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = s.parse(dates);

        //往后走2天 14 时40分01秒
        long time = d.getTime() +(2L*24*60*60)+(14*60*60)+(14*60+60)+6;//在前面加上L是数据一    long型计算 这样更计算稳定

        //格式化时间
        System.out.println(s.format(time));

Calendar

介绍

Calendar代表了系统此刻日期对应的日历对象。

Calendar是一个抽象类,不能直接创建对象。

创建日历对象的方法

方法名

说明

public static Calendar getInstance()

获取当前日历对象

Calendar常用方法

方法名

说明

public int get(int field)

取日期中的某个字段信息。

public void set(int field,int value)

修改日历的某个字段信息。

public void add(int field,int amount)

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

public final Date getTime()

拿到此刻日期对象。

public long getTimeInMillis()

拿到此刻时间毫秒值

方法演示 

//获取当前日历对象
        Calendar ca = Calendar.getInstance();

        //获取日历信息(如果不知道是那些字段那么可以打印输出日历对象来看里面的信息)
        int year = ca.get(Calendar.YEAR);
        System.out.println(year);

        int month = ca.get(Calendar.MONTH)+1;
        System.out.println(month);

        int day = ca.get(Calendar.DAY_OF_YEAR);
        System.out.println(day);

        //修改日历的某个字段信息。
        ca.set(Calendar.HOUR,12); //将小时修改成12

        //为某个字段增加/减少指定的值
        //如:12天后是什么时间
        ca.add(Calendar.DAY_OF_YEAR,12);

        //拿到此刻日期对象。
        Date d = ca.getTime();
        System.out.println(d);

        //拿到此刻时间毫秒值
        long time = ca.getTimeInMillis();
        System.out.println(time);

注意:calendar是可变日期对象,一旦修改后其对象本身表示的时间将产生变化。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值