Java 使用日期和日历
我有一个日期选择器,用户在其中选择一个日期,然后选中一个复选框,确定他希望从哪种类型的时段获取日期。例如: 用户选择1。选择“月”复选框在这种情况下,结束日期将增加1,即使这听起来足够简单,它也会慢慢地开始让我烦恼 问题是Java没有一个很好的date对象来处理这类事情,所以我想我会使用Calendar,但是增加一个Calendar日期并不容易,例如下面的例子:Java 使用日期和日历,java,date,calendar,Java,Date,Calendar,我有一个日期选择器,用户在其中选择一个日期,然后选中一个复选框,确定他希望从哪种类型的时段获取日期。例如: 用户选择1。选择“月”复选框在这种情况下,结束日期将增加1,即使这听起来足够简单,它也会慢慢地开始让我烦恼 问题是Java没有一个很好的date对象来处理这类事情,所以我想我会使用Calendar,但是增加一个Calendar日期并不容易,例如下面的例子: endDate.set(startDate.YEAR, startDate.MONTH+1, startDate.DATE); 理论
endDate.set(startDate.YEAR, startDate.MONTH+1, startDate.DATE);
理论上,这将使月份增加一个,比开始日期大一个。这在从12月开始执行的大约90%的月份中有效,如果在12月将月份增加1,则整数月份返回13对于startDate.DATE也会发生同样的情况代码>和起始日期年代码>
我的问题是有没有更简单的方法?我可以造出大量的If语句,但我真的认为这有点多余。这里的标准建议是查看(有关更多信息,请参阅)。它是一个更加一致/功能更加强大的API,没有困扰标准Java日期/格式API的线程问题,因此被广泛使用和接受
根据以上内容,我建议您:
LocalDate d = ...
LocalDate nd = d.plusMonths(1);
以上内容将正确处理月/年滚动。这里的标准建议是查看(有关更多信息,请参阅)。它是一个更加一致/功能更加强大的API,没有困扰标准Java日期/格式API的线程问题,因此被广泛使用和接受
根据以上内容,我建议您:
LocalDate d = ...
LocalDate nd = d.plusMonths(1);
上述操作将正确处理月/年滚动。您可以使用Calendar.add()
向日历值添加值,例如Calendar.add(Calendar.month,1)
这将添加一个月,并考虑到一月在十二月之后。您可以使用Calendar.add()
向日历值添加值,例如,Calendar.add(Calendar.MONTH,1)
这将添加一个月,并考虑到一月在十二月之后。使用add
方法java.util.Calendar
endDate.set(startDate.YEAR, startDate.MONTH, startDate.DATE);
if(some_condition) {
endDate.add(Calendar.MONTH, 1);
}
使用java.util.Calendar
的add
方法
endDate.set(startDate.YEAR, startDate.MONTH, startDate.DATE);
if(some_condition) {
endDate.add(Calendar.MONTH, 1);
}
@svz该月从0开始(一月)。@svz该月从0开始(一月)。如果日期为例如31,则该月也将增加。一月份?是的。它会把你带到28号。或29。二月份的。那么,如果在31月份的基础上再加上一个月,你想要什么呢。一月份?三月二号还是三号?我误读了你的声明,我以为是日期,1:)对不起!如果日期是例如31,那么这个月也会增加。一月份?是的。它会把你带到28号。或29。二月份的。那么,如果在31月份的基础上再加上一个月,你想要什么呢。一月份?三月二号还是三号?我误读了你的声明,我以为是日期,1:)对不起!在这种情况下,不是endDate.add(endDate.MONTH,1)Calendar.MONTH
只是表示月份的静态变量。这行“开始日期。年,开始日期。月,开始日期。日期”我刚从你们那个里抄过来。关键是您需要使用add
方法Calendar
。在这种情况下,不是endDate.add(endDate.MONTH,1)Calendar.MONTH
只是表示月份的静态变量。这行“开始日期。年,开始日期。月,开始日期。日期”我刚从你们那个里抄过来。关键是你需要使用add
方法Calendar
。如果我使用eclipse,我必须下载插件吗?不。只要下载jar,或者在pom.xml中引用它,如果你使用Mavendo,我必须下载插件如果我使用eclipse?不。只要下载jar,或者在pom.xml中引用它,如果你使用Maven