我正在尝试验证给定支付卡的到期日期(在我的Android应用程序中(。用户使用本月选取器输入到期日期:https://github.com/premkumarroyal/MonthAndYearPicker
日期以 MM/yy 格式存储在我的编辑文本中。我现在要确保日期不早于今天的日期。为此,我试图找出所选月份的最后一天,并将其与今天的日期进行比较,以查看所选日期是否在今天的日期之前(因此过期(。
我想知道我该怎么做?任何帮助将不胜感激。
cardExpiryDate.getText().toString()
获取用户选择的日期并转换为字符串,使其采用以下格式 -> MM/yy
编辑:它不是建议链接的副本,因为该链接比较两个日期(包括天(,而我必须将 MM/yy 形式的字符串转换为 dd/MM/yy(以便 dd 是该月的最后一天(,然后将其与今天的日期进行比较。我希望这是有道理的。
我最终通过仅比较用户输入日期的月份和今天的日期而不是比较整个日期来解决此问题。
YearMonth
类
将字符串输入解析为 YearMonth
对象。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM/uu" ) ;
YearMonth expiry = YearMonth.parse( input , f ) ;
捕捉今天的日期。
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;
获取今天的年月。
YearMonth currentYearMonth = YearMonth.from( today ) ;
Boolean isExpired = currentYearMonth.isAfter( expiry ) ;
请注意,我们不关心您在问题中提到的每月的最后一天。