java 获取下一年_JAVA获取下一年,下个月,下一天;月份为何以0开始?

JAVA获取下一年,下个月,下一天;月份为何以0开始?

JAVA获取下一年,下个月,下一天;月份为何以0开始?

活不多说,直接上代码:

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();

Date date = new Date();

System.out.println("今天是:" + DateUtil.DateToString(date, DateUtil.YYYYMMDDHHMMSS));

calendar.setTime(date);

//获取下一年

calendar.add(Calendar.YEAR, 1);

System.out.println("下一年是:" + calendar.get(Calendar.YEAR));

//获取下一月

calendar.add(Calendar.MONTH, 1);

System.out.println("下一月是:" + calendar.get(Calendar.MONTH) + 1);//月份是以0开始,所以要加1

//获取下一天

calendar.add(Calendar.DATE, 1);

System.out.println("明天是:" + calendar.get(Calendar.DATE));

}

控制台输出:

今天是:2020-09-08 16:10:42

下一年是:2021

下一月是:10

明天是:9

Process finished with exit code 0

以上不难看出,直接通过Calendar的**add()**方法,后面填上参数,即可实现输出下一年月日。

需要注意的是:月份是从0开始的,所以要+1

.

.

.

同理,下一个星期,上一个星期等,都可以这样实现。

.

.

以上方法在月份和日期的最后一天,同样适用

4dbdd3f2d482be73fe0d7a7e8e04ee54.png

.

.

.

.

.

.

.

下面,通过断点,一步一步的跟踪

.

.

.

进入以下方法,断点,通过debug模式进入,并且通过F7查看

Calendar calendar = Calendar.getInstance();

0ca5debdac81b526401143ceef345383.png

.

.

.

一直F7

.

.

疯狂F7

.

.

直到…

.

5beaa533f2ff37d26656c5dc05f450b7.png

0-based

.

现在清楚了吧,他在初始化的时候,将0设置成第一个

.

在GregorianCalendar.java的2426行

.

.

.

看了下面那张图片,你就明白了

5fe07b18278c622d24ddf7d0fe155219.png

dd6e202b188055ef6fd98c0553b9f5a3.png

.

.

.

.

.

.

.

.end

特别鸣谢:@xxl

JAVA获取下一年,下个月,下一天;月份为何以0开始?相关教程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值