java calendar 加减_Java利用Calendar对时间任意加减

发现朋友做一个项目,然后涉及到年、月、日的加减。他居然自己定义了24小时,31天,12个月几个数组,然后自己写逻辑运算。首先不说自己写出来有没有BUG,至少肯定代码有点多,而且还要判断闰年。Java在很早的版本中已经提供了时间操作类,JDK1.1好像就有Calendar日期操作类,利用它,你随意运算,而且代码量非常小。

以下例子是建立在每次更改之后的时间,并不是每次都是当前时间。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

System.out.println("现在时间");

Calendar calendar = Calendar.getInstance();

System.out.println(sdf.format(new Date(calendar.getTimeInMillis())));

int day = calendar.get(Calendar.DAY_OF_YEAR);

// 30天前

calendar.set(Calendar.DAY_OF_YEAR, day - 30);

System.out.println("30天前");

System.out.println(sdf.format(new Date(calendar.getTimeInMillis())));

// 78小时前

int hour = calendar.get(Calendar.HOUR_OF_DAY);

calendar.set(Calendar.HOUR_OF_DAY, hour - 78);

System.out.println("78小时前");

System.out.println(sdf.format(new Date(calendar.getTimeInMillis())));

int second = calendar.get(Calendar.SECOND);

calendar.set(Calendar.SECOND, second - 5362);

System.out.println("5362秒前");

System.out.println(sdf.format(new Date(calendar.getTimeInMillis())));

97ab71f3c5fd65e3598eb944c3ecaa12.png

时间解析:

public static void main(String[] args) {

// TODO Auto-generated method stub

Calendar c = Calendar.getInstance();

// 2015-11-8 0:59:54

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date date = sdf.parse("2015-11-8 0:59:54");

c.setTime(date);

System.out.print(c.get(Calendar.YEAR));

System.out.print(c.get(Calendar.MONTH) + 1);

System.out.print(c.get(Calendar.DAY_OF_MONTH));

System.out.print(c.get(Calendar.HOUR_OF_DAY));

System.out.print(c.get(Calendar.MINUTE));

System.out.print(c.get(Calendar.SECOND));

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值