Calendar类常用需求方法

本文介绍使用Java Calendar类进行日期操作的方法,包括获取昨天和明天的日期、列出指定时间段内的所有日期,并比较两个日期的先后顺序。

经常处理一些日期相关的信息,Calendar类是处理日期的常用类,写下几个方法,不用重复造轮子了。

1.求上一天,下一天的日期

Date now = new Date();
Calendar c = Calendar.getInstance();
c.setTime(now);
c.add(Calendar.DAY_OF_MONTH, -1);  // 下一天,上一天-1改为1
Date yesterday = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
System.out.println(sdf.format(yesterday));

 

2.给定开始时间和结束时间,输出中间每一天

Date now = new Date();
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String begin = "20161201";
String end = "20170210";
try {
Date begin_date = sdf.parse(begin);
Date end_date = sdf.parse(end);

List<Date> lDate = new ArrayList<Date>();
lDate.add(begin_date);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(begin_date);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(end_date);
// 测试此日期是否在指定日期之后
while (end_date.after(calBegin.getTime())) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
lDate.add(calBegin.getTime());
}

for (Date date : lDate) {
String format = sdf.format(date);
System.out.println(format);
}

3.compareTo()方法,比较两个Calendar的日期谁在前谁在后,在之前的话为-1,相同为0,在之后为1

4.Calendar类的before和after方法,参数都为Calendar才能正确比较

转载于:https://www.cnblogs.com/sansamh/p/6393072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值