如何在java中比较当前日期和月份与给定日期和月份

2024-02-19

我想将当前日期与给定日期进行比较。当前日期格式为 (dd-MM-YYYY)。我不想获得当前年份。假设今天的日期是 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();
            }
  1. 另一个函数:

            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();
                    }
    

java.time.MonthDay

在中使用现代日期时间类三十ABP https://github.com/JakeWharton/ThreeTenABP项目,Android 改编后端口 https://github.com/ThreeTen/threetenbp of the java时间 https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.htmlJava 8 及更高版本中内置的类。避免麻烦的旧遗留日期时间类。

这些 java.time 类包括MonthDay http://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html类来表示月份和月份中的某一天(没有年份)。

MonthDay md = MonthDay.of( 8 , 15 );

这个类已经实现了Comparable http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html接口及其compareTo https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html#compareTo-java.time.MonthDay-方法。还实现了方法equals https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html#equals-java.lang.Object-, isBefore https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html#isBefore-java.time.MonthDay-, and isAfter https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html#isAfter-java.time.MonthDay-。那么,工作完成了。

确定current MonthDay https://docs.oracle.com/javase/8/docs/api/java/time/MonthDay.html#now-java.time.ZoneId-需要时区。对于任何给定时刻,日期都会有所不同时区 https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html.

ZoneId z = ZoneId.of( "America/Montreal" );
MonthDay today = MonthDay.now( z );

关于 java.time

The java.time http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html框架内置于 Java 8 及更高版本中。这些课程取代了麻烦的旧课程legacy https://en.wikipedia.org/wiki/Legacy_system日期时间类,例如java.util.Date https://docs.oracle.com/javase/8/docs/api/java/util/Date.html, Calendar https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html, & SimpleDateFormat http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

The 乔达时间 http://www.joda.org/joda-time/项目,现在在维护模式 https://en.wikipedia.org/wiki/Maintenance_mode,建议迁移到java.time http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html类。

要了解更多信息,请参阅甲骨文教程 http://docs.oracle.com/javase/tutorial/datetime/TOC.html。并在 Stack Overflow 上搜索许多示例和解释。规格为JSR 310 https://jcp.org/en/jsr/detail?id=310.

从哪里获取 java.time 类?

  • Java SE 8 https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8 and SE 9 https://en.wikipedia.org/wiki/Java_version_history#Java_SE_9 and later
    • 内置。
    • 具有捆绑实现的标准 Java API 的一部分。
    • Java 9 添加了一些小功能和修复。
  • Java SE 6 https://en.wikipedia.org/wiki/Java_version_history#Java_SE_6 and SE 7 https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7
    • 许多 java.time 功能都向后移植到 Java 6 和 7三十后端口 http://www.threeten.org/threetenbp/.
  • Android https://en.wikipedia.org/wiki/Android_(operating_system)
    • The 三十ABP https://github.com/JakeWharton/ThreeTenABP项目适应三十后端口(如上所述)专门针对 Android。
    • See 如何使用 ThreeTenABP... https://stackoverflow.com/q/38922754/642706.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中比较当前日期和月份与给定日期和月份 的相关文章

随机推荐