为什么使用Android Java会在一个月的某一天出错?

为什么使用Android Java会在一个月的某一天出错?,java,android,date,Java,Android,Date,今天的日期是2011年10月24日 但是使用这个代码 Calendar currentDate = Calendar.getInstance(); int d = currentDate.DAY_OF_MONTH; 给我日期5 另外,emulator settings中的日期是2011年10月24日 currentDate.DAY_OF_MONTH; 是在Calendar类内部使用的常量。要获取月的当前日期,请使用 使用 更新: 如何将当前日期移动6天,并获取新的日期和月份值?

今天的日期是2011年10月24日

但是使用这个代码

  Calendar currentDate = Calendar.getInstance();
  int d = currentDate.DAY_OF_MONTH;
给我日期
5

另外,emulator settings中的日期是2011年10月24日

 currentDate.DAY_OF_MONTH; 
是在Calendar类内部使用的常量。要获取月的当前日期,请使用

使用

更新:

如何将当前日期移动6天,并获取新的日期和月份值? //增加6天 currentDate.add(Calendar.DATE,6)


DAY\u OF\u MONTH
字段是一个常量整数。使用方法
get

currentDate.get(Calendar.DAY_OF_MONTH);
例如,您可以使用以下方法添加6天:

currentDate.add(Calendar.DAY_OF_MONTH, 6);
另请参见。

ZoneDateTime
实现这一点的现代方法是使用java.time类

A表示时间线上分辨率为纳秒的一个时刻

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( z );
int dayOfMonth = zdt.getDayOfMonth();
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,如
java.util.date
.Calendar
,&
java.text.SimpleDateFormat

该项目现已启动,建议迁移到java.time

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释

大部分java.time功能都在中向后移植到java 6和7,并进一步适应于中(请参阅)


该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如
Interval
YearWeek
YearQuarter
,等等。

是的,您总是得到5:)公共最终静态int DAY\u OF\u MONTH=5;就这样。谢谢,我很快会接受你的问题,另一个问题是如何将当前日期转换为6天,并获得新的日期和月份值?
currentDate.add(Calendar.DAY_OF_MONTH, 6);
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( z );
int dayOfMonth = zdt.getDayOfMonth();