Java - 时间类

Date

是一个时间对象,包含所用时间内容
通过无参构造方法创建的时间是当前的系统时间,new Date()。
通过有参构造方法创建的时间是参数对应的时间 new Date(long mis)。

时间格式

     2021-06-08 15:58:29  16:03 2021/6/8 星期几
     yyyy-MM-dd HH:mm:ss   HH:mm yyyy/M/d E
     yyyy(YYYY):四位数的年
     MM:两位月份 MMM:中文月份 一月
     dd(DD):两位数的日
     HH:两位24制小时 hh:两位12小时制
     mm:两位分钟
     ss:两位秒种
     SSS:毫秒
     E:星期

时间格式化对象

//创建时间对象
Date date = new Date();
System.out.println(date.toString());
//时间格式化对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String strDate = sdf.format(date);
System.out.println("格式化后:" + strDate);

输出结果
在这里插入图片描述

字符串转为时间对象

 String birthday = "1999-10-15";
        //字符串转为时间对象
        Date d = null;
        try{
            d = sdf.parse(birthday);
            System.out.println(d);
        }catch (Exception e){
            e.printStackTrace();
        }

输出结果
在这里插入图片描述

系统时间的毫秒数

总毫秒数 ,从1970年1月1日开始计算,1970-01-01 00:00:00,又称格林威治时间。

long l1 = System.currentTimeMillis();//系统时间的毫秒数

输出结果:
在这里插入图片描述
详细使用请参考这为博主博客。

Calendar

格式化时间对象

Calender是一个单例的时间对象,存储的是每一个整形类型的时间单位。

//创建日历对象,获取当前系统时间
        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);//年
        int M = c.get(Calendar.MONTH) + 1;//月份从0记起
        int d = c.get(Calendar.DAY_OF_MONTH);//日

        int h = c.get(Calendar.HOUR_OF_DAY);//小时
        int m = c.get(Calendar.MINUTE);//分
        int s = c.get(Calendar.SECOND);//秒

        int w = c.get(Calendar.DAY_OF_WEEK) - 1;//星期天是第一天

        String str =
                String.format("%s年%s月%s日 %s:%s:%s 星期%s",year,M,d,h,m,s,w);
        System.out.println(str);

输出结果
在这里插入图片描述

设置时间

//设置时间
        c1.set(Calendar.YEAR,1999);
        c1.set(Calendar.MONTH, -1);//月份从0算起 -1则为上个月份
        c1.set(Calendar.DAY_OF_MONTH,1);//1是一号 0是上个月的最后一天 -1是上个月的倒数第二天

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
        System.out.println("设置的时间:" + sdf.format(c1.getTime()));

输出结果
在这里插入图片描述

时间的加减

 //时间的加减
        Calendar c2 = Calendar.getInstance();
        c2.add(Calendar.MONTH,1);//正数是加上,负数是减去,0为原来

        System.out.println("加减后的时间:"+sdf.format(c2.getTime()));

输出结果
在这里插入图片描述

总结

date得到是日期毫秒,calendar得到的是日期的字段,因为date过于古老,且不利于国际化使用,更推荐使用calendar。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值