Calendar的常量 DAY_OF_MONTH为啥可以表示一个月的每一天呢(常量不是不可以变吗)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Calendar的常量 DAY_OF_MONTH为啥可以表示一个月的每一天呢(常量不是不可以变吗)相关的知识,希望对你有一定的参考价值。

常量是不可以变。。但是可以初始化的时候赋值啊~~

Calendar源码没看过。。 个人感觉应该是类似这个样子
在类中定义static方法块 载入类的时候就初始化变量---
之后你拿到手的其实是她已经算好了的值
参考技术A Calendar.DAY_OF_MONTH是一个静态变量,只是表示当天是这个月的第几天,它的值是固定的5,如果你要获取这个月的第几天应该是从Calendar的一个实例中去get得到的
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_MONTH);

java按照时间查询,获取近1月时间信息。时间如何加减?简单易懂,谢谢了。

举个例子谢了,当前时间的前一个月怎么算出来?

1.用java.util.Calender来实现

Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
System.out.println(calendar.get(Calendar.DATE));//加1之后的日期Top
===============================================================================

2.用java.text.SimpleDateFormat和java.util.Date来实现

Date d=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("今天的日期:"+df.format(d));
System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));追问

你这个不太准确,30天以上的有问题了,我是菜鸟给一个月份的,谢谢了。

一月前就是+了不是-了,为什么会反过来?2天前是-的? 

追答

第一种方式

追问

50分举个详细的例子,最好是带数据库的。

追答

就这么简单的算法,不需要数据库。

参考技术A 转换成相同的类型 直接加减啊= =追问

我不会啊,举个例子谢了。

参考技术B public static String getTime()
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -30);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd mm:hh:ss");
return dateFormat.format(calendar.getTime());

以上是关于Calendar的常量 DAY_OF_MONTH为啥可以表示一个月的每一天呢(常量不是不可以变吗)的主要内容,如果未能解决你的问题,请参考以下文章

关于获取某月某日最后一天时Calendar的cal.getActualMaximum(Calendar.DAY_OF_MONTH)的吐槽

整理Java基础知识--Calendar 类

java的Calendar类

java中如何得到上一个的月第一天与最后一天。(不以当前日期为标准)

nowDate.add(Calendar.DAY_OF_MONTH,1); 谁能告诉我这里面的 1 是啥意思

Calendar获取当前年月日问题