java怎么滚动_Java中Date类型如何向前向后滚动时间,( 附工具类)

Java中的Date类型向前向后滚动时间(附工具类)

废话不多说,先看工具类:

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateRoll {

/**

* Date类型向前向后滚动固定时长

*

* @param date

* 调整前的时间对象

* @param i

* 需要滚动哪一个字段,写法: 年->Calendar.YEAR 月->Calendar.MONTH

* 日->Calendar.DATE 时->Calendar.HOUR_OF_DAY(24小时制)

* 分->Calendar.MINUTE 秒->Calendar.SECOND 毫秒->Calendar.MILLISECOND

* @param d

* 滚动多少,向前(以前)就用负数,向后(未来)就用正数

*/

public static Date dateRoll(Date date, int i, int d) {

// 获取Calendar对象并以传进来的时间为准

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// 将现在的时间滚动固定时长,转换为Date类型赋值

calendar.add(i, d);

// 转换为Date类型再赋值

date = calendar.getTime();

return date;

}

public static void main(String[] args) {

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

.format(new Date()));

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

.format(dateRoll(new Date(), Calendar.SECOND, 1)));

}

}

1  java中处理时间的类有2个,一个是大家熟知的java.util.Date类,另一个是java.util.Calendar,那么他们有什么区别呢,在早期的java中并没有Calendar类,后来人们发现了Date类的诸多bug,比如在向前回滚时间的时候,如果是2018-1-2回滚5天就变成了2018-12-28,很明显这是不对的,不过因为java出现早期定下的规定,JDK开发人员并没有直接在Date类里面修改,而是加入了更加完善的Calendar类Calendar经过长时间的实际使用,的确是已经证明它的完备性,Calendar还提供了与Date之间的转换,本文中的滚动方法也是基于这种想法实现的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值