您的位置:首页 > 其它

【Calendar】为什么我的DAT_OF_MONTH输出来的不是当前月份的日期,而是5?

2017-06-19 13:52 323 查看

1.问题:

为什么我的DAT_OF_MONTH输出来的不是当前月份,而是5?

2.源代码:

public class TestDemo3_AutoUpClassDayToMonth {
public static void main(String[] args) {
/*全局变量*/
Date currentDateTime=new Date();/*获取当前时间*/
Calendar calendar = Calendar.getInstance();/*建立日历空日历*/
calendar.setTime(currentDateTime);/*空日历中导入当前时间*/

calendar.add(Calendar.DAY_OF_MONTH,-1);/*取天数为前一天*/
calendar.set(Calendar.HOUR_OF_DAY,23);/*设置时间为23点*/
calendar.set(Calendar.MINUTE,59);/*设置分钟为59分*/
calendar.set(Calendar.SECOND,0);/*设置秒数为0秒*/
calendar.set(Calendar.MILLISECOND,0);/*设置毫秒为0毫秒*/

System.out.println(currentDateTime);/*打印当前时间*/

for (int i=0;i<30;i++){/*从前一天遍历到最近30天*/
int monthDemo=Calendar.DAY_OF_MONTH;/*获取当月天数*/
System.out.println("最近30天:"+monthDemo);/*打印最近30天的天数*/
calendar.add(Calendar.DAY_OF_MONTH,-1);/*每个月的天数往前减1*/
}
}
}


3.截图:



4.总结:

为什么当前时间是2017年6月19日13:25:23,但是最近30天却都是5?

因为:

正确的写法应该是这样的:



输入的结果为:



问题的所在是:

Calendar.DAY_OF_MONTH是一个常量,static;

必须得用calendar.get(Calendar.DAT_OF_MONTH),才能获取正确的值;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐