用java语言打印前一天的时间_JAVA语言获取前一天和后一天时间

这篇博客介绍了在JAVA开发中如何获取当前时间的前一天和后一天,主要使用了Calendar类的set和roll方法。通过示例代码展示了两种方法的使用,并对比了它们在处理边界情况(如2014年1月1日)时的区别。
摘要由CSDN通过智能技术生成

今天在JAVA语言飞开发项目的时候遇到一个问题就是怎么获取当前时间的前一天和后一天,这个实现的逻辑并不复杂,自己要写的话的也不是难事,但是貌似感觉没必要自己写这样的方法,想想Java中的Calendar类应该有这样的方法,所以上网查了相关的资料,有两个方法:分别是set和roll方法,希望对大家学习JAVA语言有所帮助,这两个方法的具体使用方法如下:[java] view plain copy

1. package com.java.demo;

2.

3. import java.util.Calendar;

4.

5. public class DateUtil {

6.

7.     public static void main(String[] args){

8.         //当前时间

9.         Calendar cl = setCalendar(2014,01,01);

10.         System.out.print("当前时间:");

11.         printCalendar(cl);

12.         //前一天

13.         cl = setCalendar(2014,01,01);

14.         getBeforeDay(cl);

15.         System.out.print("前一天:");

16.         printCalendar(cl);

17.         //后一天

18.         cl = setCalendar(2014,01,01);

19.         getAfterDay(cl);

20.         System.out.print("后一天:");

21.         printCalendar(cl);

22.     }

23.

24.     /**

25.      * 设置时间

26.      * @param year

27.      * @param month

28.      * @param date

29.      * @return

30.      */

31.     public static Calendar setCalendar(int year,int month,int date){

32.         Calendar cl = Calendar.getInstance();

33.         cl.set(year, month-1, date);

34.         return cl;

35.     }

36.

37.     /**

38.      * 获取当前时间的前一天时间

39.      * @param cl

40.      * @return

41.      */

42.     private static Calendar getBeforeDay(Calendar cl){

43.         //使用roll方法进行向前回滚

44.         //cl.roll(Calendar.DATE, -1);

45.         //使用set方法直接进行设置

46.         int day = cl.get(Calendar.DATE);

47.         cl.set(Calendar.DATE, day-1);

48.         return cl;

49.     }

50.

51.     /**

52.      * 获取当前时间的后一天时间

53.      * @param cl

54.      * @return

55.      */

56.     private static Calendar getAfterDay(Calendar cl){

57.         //使用roll方法进行回滚到后一天的时间

58.         //cl.roll(Calendar.DATE, 1);

59.         //使用set方法直接设置时间值

60.         int day = cl.get(Calendar.DATE);

61.         cl.set(Calendar.DATE, day+1);

62.         return cl;

63.     }

64.

65.     /**

66.      * 打印时间

67.      * @param cl

68.      */

69.     public static void printCalendar(Calendar cl){

70.         int year = cl.get(Calendar.YEAR);

71.         int month = cl.get(Calendar.MONTH)+1;

72.         int day = cl.get(Calendar.DATE);

73.         System.out.println(year+"-"+month+"-"+day);

74.     }

75.

76. }

上面的代码就是说明了set方法和roll方法的使用,传入一个Calendar,进行设置之后返回一个Calendar,但是roll和set有一个区别:为了测试出这两个方法的却别,我们将时间设置成一个边界值:2014-01-01:看运行效果:

是通过set方法进行设置的时间的效果图:

bce320b59f4c15c23f6785c8199af1c7.png

通过效果图我们可以看到,set方法获取前一天和后一天的时间是没有任何问题的。下面再来看一下roll方法获取前一天和后一天的时间的效果图:

13fb25087568efee5dda09a3b8e74719.png

我们发现在获取前一天的时间的时候出现问题了,就是2014-01-01获取前一天是2014-01-31,由此我们可以看到,roll方法在获取前一天和后一天的时候并不是级联改动的,只会修改当前的day,而不会考虑year和month,当然他在修改day的时候是一个循环的修改,如:1月份是:1-31,就是一个循环。

通过上面的分析我们看到了set方法和roll方法的却别了。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值