Android将EditText值与当前日期进行比较

时间:2016-03-07 20:18:04

标签: android

我一直在尝试检查我的Android应用中的编辑文本字段中的日期是否为>在转移到新意图之前的当前日期,但我无法达成任何解决方案

希望有人可以建议,亲切地

3 个答案:

答案 0 :(得分:1)

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

   LocalDateTime now = LocalDateTime.now(); 
int year = now.getYear();
int month = now.getMonthValue();
int day = now.getDayOfMonth();
int hour = now.getHour();
 int minute = now.getMinute();
 int second = now.getSecond();

答案 1 :(得分:1)

我还建议查看JodaTime(在jdk 8中你应该使用java.time包)。具体来说,请查看http://joda-time.sourceforge.net/apidocs/org/joda/time/base/AbstractPartial.html#isAfter(org.joda.time.ReadablePartial),这是您可以使用的LocalDate的父类。

请参阅LocalDate#nowLocalDate#parse以构建这些类的实例

答案 2 :(得分:0)

根据EditText中的日期格式,您需要获取该数据并创建Date的实例,以便比较这两者。

示例:

String rawDate = EditText.getText().toString();
DateFormat format = new SimpleDateFormat("expected format", Locale.US); 
Date inputDate = format.parse(rawDate);
Date currentDate = new Date();
if(inputDate.after(currentDate)){
//if editText date is after
else{
//if editText date is not after
}

注意:Date不是Java中日期和时间的最佳选择。正如其他人所说,Joda是一个非常好的选择。我建议你阅读关于这个主题的文档和其他文章,这样你就知道在项目中采用Joda意味着什么,以及你是否真的需要它。