Date,DateFormat和Calender

本文详细介绍了Java中处理日期和时间的基本类Date及其使用方法,包括构造函数、常用方法如after()和setTime()等。此外,还深入探讨了SimpleDateFormat类如何实现日期格式化与解析,以及Calendar类在日期计算方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Date
类Date表示特定的瞬间,精确到毫秒。此类中的方法有很多,不过有很多都是过时的方法,常用的方法不多.
无参构造Date()
创建Date对象并初始化此对象,以表示创建它的系统时间(精确到毫秒)。这个方法底层就是调用的的

  public Date() {
    this(System.currentTimeMillis());
}
 
package demo5;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        Date date = new Date();
        //以指定的毫秒数进行初始化
        Date date1 = new Date(1000000);
        //测试此日期是否在指定日期之后。 
        System.out.println(date.after(date1));
        //使用给定毫秒时间值设置现有 Date 对象。
        date.setTime(System.currentTimeMillis());
        System.out.println(date1);
        System.out.println(date.getTime());
    }
}

SimpleDateFormat是继承的DataFormat,他们是java.text包下的类(text包下的大部分类都是用于格式化),DateFormat是一个抽象类,所以我们在使用它的非静态方法的时候一般是使用它的子类对象,也就是SimpleDateFormat类的对象,他们的作用就是格式化和解析日期的具体类.常用的方法有两个,都是非静态的.
方法public String format(Date date)和public Date parse(String string)

package demo5;
        import java.text.DateFormat;
        import java.text.ParseException;
        import java.text.SimpleDateFormat;
        import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {

         DateFormat df = DateFormat.getDateTimeInstance();

        System.out.println(df.format(new Date()));
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date));

        String strDate = "2018-4-6 10:11:15";
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
        //	将文本按照给定的 simpleDateFormat1类型转换成Date类型
            Date date1 = simpleDateFormat1.parse(strDate);  //将字符串格式化Date
            System.out.println(simpleDateFormat1.format(date1));  //将日期格式化为字符串
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

Calender
calendar是日历的意思,为操作年月日时提供一些方法.在对日期做加减时或者灵活的获取日期中的某个字段用此类比较合适.他是一个抽象类,有个getInstance方法类获得一个对象.这个类里面还有很多见名知意的属性:

主要通过get()方法获取

package demo5;


import java.util.Calendar;

public class ClaenderDemo {
    public static void main(String[] args) {
    //抽象类,getInstance方法类获得一个对象
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月");
		
		
 		String date = "2019-4-9";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = simpleDateFormat.parse(date);	//将字符串转换成Date

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date1); //使用给定的Date设置Calender时间

        System.out.println(calendar.getTime()); //返回一个Calender时间值

        //获取当前时间的字段
        long time = System.currentTimeMillis();
        Date date3 = new Date();
        date3.setTime(time);
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(date3);
        System.out.println(calendar1.get(Calendar.DAY_OF_WEEK)-1);

		//now至x天后星期几
        Calendar calendar2 = Calendar.getInstance();
        calendar2.add(Calendar.DAY_OF_WEEK,3);
        System.out.println(calendar2.get(Calendar.DAY_OF_WEEK));






    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值