常用API—Date,Calendar类方法使用

本文深入探讨了Java中处理日期和时间的多种方法,包括使用Date、SimpleDateFormat、Calendar类等核心API。详细介绍了如何创建、格式化和解析日期,以及进行日期计算。

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

Date类

java.util.Date Date是一个实例,用于表示一个确切的时间。

构造方法:

public Date():无参构造,默认表示当前系统时间的毫秒时刻

public Date(long date):指定long类型的构造参数,可以自定义毫秒时刻以表示从标准基准时间(1970年1月1日00:00:00)以来的指定毫秒数。

	// 创建日期对象,把当前的时间
	System.out.println(new Date()); // Fri Nov 22 19:32:40 CST 2019
	// 创建日期对象,把当前的毫秒值转成日期对象
	System.out.println(new Date(1574422380880L))// Fri Nov 22 19:33:00 CST 2019

常用方法:

public long getTime():把日期对象转换成对应的时间毫秒值。

void setTime(long time):设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。

	Date date1 = new Date(1574422380880L);//获取该Date内部维护long值表示从1970-1-1 00:00:00到这一刻的毫秒值
	long time = date1.getTime();
	System.out.println(time);//1574422380880
	//让当前date给定的毫秒数所表示的时间(格林威治)是0时0分0秒
	date1.setTime(0);
	System.out.println(date1);//Thu Jan 01 08:00:00 CST 1970
	//明天的此时此刻
	date1.setTime(time+24*3600*1000);
	System.out.println(date1);//Sat Nov 23 19:33:00 CST 2019

DateFormat抽象类

java.text.DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间

SimpleDateFormat类

由于DateFormat为抽象类,所以需要常用的子类SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。

构造方法为:
public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

常用方法:

public String format(Date date):将Date对象格式化为字符串。

public Date parse(String source):将字符串解析为Date对象。

	String str = "2008-08-08 08:08:08";
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	/*
	 * Date parse(String str)
	 * 将给定的字符串按照SimpleDateFormat指定的日期格式解析
	 * 并转换为Date对象返回
	 */
	Date date11= sdf.parse(str);
	System.out.println(date11);//Fri Aug 08 08:08:08 CST 2008
	SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
	Date date2 = new Date();
	String str1 = sdf1.format(date2);
	System.out.println(str1);//2019年12月15日 10时44分58秒

Calendar类

java.util.Calendar是日历类,替换掉了许多Date的方法。日历类就是方便获取各个时间属性的。

Calendar为抽象类,不能直接创建,需要一个实现类才能new对象,但是java中提供了一个方法getInstance()方法,可以直接返回一个Calendar对象,非常简便

Calendar cal = Calendar.getInstance();

public int get(int field):返回给定日历字段的值。

public void set(int field, int value):将给定的日历字段设置为给定值。

public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。

public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

	//创建Calendar对象
	Calendar calendar = Calendar.getInstance();
	System.out.println(calendar);
	//而是拿到对应的Date对象
	Date date = calendar.getTime();
	System.out.println(date);//Sat Nov 23 14:30:19 CST 2019
	calendar.set(calendar.YEAR, 2008);
	calendar.set(calendar.MONDAY, 8);
	calendar.set(calendar.DATE, 8);
	//获取年
	int year = calendar.get(Calendar.YEAR);
	//获取月
	int month = calendar.get(Calendar.MONDAY)+1;
	//获取日
	int date1 = calendar.get(Calendar.DATE);
	System.out.println(year+"-"+month+"-"+date1);
	//获取这一年的天数
	int days = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_YEAR);		System.out.println("今年共"+days+"天");
	//对指定日历字段的值进行加减操作//设置年
	calendar.add(Calendar.YEAR, 3);
	//设置月
	calendar.add(Calendar.MONDAY, 2);
	//设置日
	calendar.add(Calendar.DATE, 25);
	System.out.println(new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒").format(calendar.getTime()));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值