时间类Date与日历类Calender

时间类Date与日历类Calender

1、Date类:时间对象,包含时间所具备的所有内容
a.可以通过无参构造方法创建的时间是当前系统时间(new Date();)
b.通过有参构造方法创建的时间是参数对象的时间(new Date(long mis);)

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

/**
 * Date
 */
public class Test03 {
    public static void main(String[] args) {
        //创建时间对象,得到系统时间(cts时间 美国中央时间)
        Date date=new Date();
        System.out.println(date.toString());

        /**
         * 2021-06-08 15:59:29   16:03 2021/6/8 星期几
         * yyyy(YYYY):四位数的年   HH:mm  yyyy/M/d  E
         * MM:两位月份  MMM:中文月份  一月
         * dd(DD):两位日
         * HH: 两位24制小时  hh:两位12制小时
         * mm:两位分钟
         * ss:两位秒
         * SSS:毫秒
         * E 星期
         */
        //时间格式化对象
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String str=sdf.format(date);
        System.out.println("格式化后:"+str);

        // Unparseable date(无法转换日期格式异常),只能使用“-”,否则都会出现格式异常
        String birthday="1999-02-31";
        //字符串转为时间对象
        Date d=null;
        try {
            d=sdf.parse(birthday);
            System.out.println(d);
        }catch (Exception e){
            e.printStackTrace();
        }

        //格林威治时间  1970-01-01  00:00:00
        //获取毫秒数
       long l1= date.getTime();//时间毫秒数
          long l2=System.currentTimeMillis();//系统时间毫秒数
        date=new Date(l1);
        System.out.println(l1);
        System.out.println(l2);

        long l3=d.getTime();
        long l4=Math.abs(l3-l1);//时间差
        long mis=24*60*60*1000;//一天的毫秒数
        long days=l4/mis;
        System.out.println("时间跨度为"+days+"天");
    }
}

在这里插入图片描述

2、Calender类
Calender是一个单例的时间对象,存储的是每一个整形类型的时间单位,可以更加方便计算每一天

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

/**
 * java时间Calender
 */
public class Test01 {
    public static void main(String[] args) {
        method01();
    }
    public static void method01(){
        //创建日历对象
        Calendar c=Calendar.getInstance();
        System.out.println(c);
        int year=c.get(Calendar.YEAR);
        int M=c.get(Calendar.MONTH)+1;//月份的下标加1
        int D=c.get(Calendar.DAY_OF_MONTH);

        int h=c.get(Calendar.HOUR_OF_DAY);
        int min=c.get(Calendar.MINUTE);
        int sec=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,min,sec,w);

        System.out.println(str);

        int dy=c.get(Calendar.DAY_OF_YEAR);
        int wy=c.get(Calendar.WEEK_OF_YEAR);

        long ms=c.getTimeInMillis();//获取毫秒数

        //Calender to Date
        Date date1=new Date(ms);
        Date date2=c.getTime();

        //Date to Calender
        c.setTime(date1);

        //时间的相加相减
        Calendar c1=Calendar.getInstance();
        c1.set(Calendar.YEAR,1999);
        c1.set(1999,11,12);

        //特别注意
        c1.set(Calendar.MONTH,-1);//年减一
        c1.set(Calendar.DAY_OF_MONTH,-1);//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()));
    }
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值