安卓如何在java中比较当前日期和月份与给定日期和月份
我想比较当前日期和给定日期。当前日期格式为(dd-MM-yyy)。我不想拿到今年的工资。假设今天的日期是2016年8月30日。我只想要30-08年,我不想要2016年的当前年份。给定的日期是15-08和31-08。我没有得到现在这样的日期30-08。我怎样才能得到这个,怎样才能进行比较?以下是我尝试过的代码:
Date date1_aug, date2_aug, cur_date;
String cur_date_string, sDay, sMonth;
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DATE);
sDay = Integer.toString(day);
sMonth = Integer.toString(month);
cur_date_string = sDay+"-"+sMonth;
try {
cur_date = sdf.parse(cur_date_string);
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
另一个功能:
try{ date1_aug = sdf.parse("15-08"); date2_aug = sdf.parse("31-08"); if(cur_date.equals(date1_aug) || cur_date.after(date1_aug) || cur_date.before(date2_aug)){ textView_Amount_LateFee.setText(Config.fine_aug.get(1)); } }catch(ParseException ex){ ex.printStackTrace(); }
# 1 楼答案
如果你想忽略年份,忘记使用日期概念本身
# 2 楼答案
您是否尝试过在要比较的日期中使用同一年
只需使用日历,将两个日期对象中的年份设置为相同,然后比较它们
(注意闰年)
# 3 楼答案
java.time.MonthDay
在ThreeTenABP项目中使用现代日期时间类,这是Java 8及更高版本中内置的java-time类的the back-port的Android改编。避免麻烦的旧遗留日期时间类
这些是java。时间类包括^{} 类,代表一个月和一个月中的一天,但不代表年份
这个类已经实现了^{} 接口及其^{} 方法。还实现了方法^{} 、^{} 和^{} 。工作完成了
确定current ^{} 需要一个时区。对于任何给定的时刻,日期都会变化time zone
关于java。时间
{a12}框架内置于Java8及更高版本中。这些类取代了legacy日期时间类,比如^{} 、^{} 、&^{}
目前位于maintenance mode的Joda-Time项目建议迁移到java.time类
要了解更多信息,请参阅Oracle Tutorial。并在Stack Overflow中搜索许多示例和解释。规范是JSR 310
在哪里可以获得java。时间课