如何在安卓工作室中将多个编辑文本值转换为一个日期字符串?



>它是一个年龄计算器项目 我需要知道如何将多个 EditText 值转换为一个日期 安卓工作室中的字符串? 请记住,我正在使用"乔达时间图书馆",它没有显示结果。我不知道我在哪里做错了!我已经忘记了我现在无法修复的一切,希望你们能帮助我。谢谢

public void dateOfBirth(){
String day = editTextDay.getText().toString().trim();
String month = editTextMonth.getText().toString().trim();
String year = editTextYear.getText().toString().trim();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
String sDate = day+"/"+month+"/"+year;
long date = System.currentTimeMillis();
String eDate = simpleDateFormat.format(date);

try {
Date date1 = simpleDateFormat.parse(sDate);
Date date2 =simpleDateFormat.parse(eDate);
/* long eDate = System.currentTimeMillis();
Date date2 = simpleDateFormat.parse(String.valueOf((eDate)));*/
long startDate = date1.getTime();
long endDate =date2.getTime();
if (startDate<=endDate){
Period period = new Period(startDate, endDate, PeriodType.yearMonthDay());
int years = period.getYears();
int months =period.getMonths();
int days = period.getDays();
textViewDay.setText(days);
textViewMonth.setText(months);
textViewYear.setText(years);
}

} catch (ParseException e) {
e.printStackTrace();
}

}

全力以赴 Joda-Time

String day = "11";
String month = "4";
String year = "2012";
String sDate = "" + year + '-' + month + '-' + day;
LocalDate dob = new LocalDate(sDate);
LocalDate today = new LocalDate();
if (dob.isBefore(today)) {
Period period = new Period(dob, today, PeriodType.yearMonthDay());
int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();
System.out.println("" + years + " years " + months + " months " + days + " days");
}

当我刚才运行上面的代码片段时,输出是:

7 年 10 个月 0 天

由于您对年,月和日感兴趣,因此不需要DateTime对象(尽管它们可以工作(。它们也包括一天中的时间。只需使用LocalDate.

SimpleDateFormatDate的课程设计不佳且早已过时,前者尤其臭名昭著地麻烦。我建议你远离这些,也不要将时间点表示为自纪元以来的毫秒数long。不错的选择是:

留在Joda-Time
  1. ,因为你已经在使用Joda-Time了。
  2. 迁移到 java.time,即现代 Java 日期和时间 API。

这就是我解决问题的方式 -

String day = editTextDay.getText().toString().trim();
String month = editTextMonth.getText().toString().trim();
String year = editTextYear.getText().toString().trim();
//  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");

String BirthDate ="" + year + '-' + month + '-' + day;
LocalDate sDate = new LocalDate(BirthDate);
LocalDate today = new LocalDate();
Period period = new Period(sDate, today, PeriodType.yearMonthDay());
int years = period.getYears();
int months =period.getMonths();
int days = period.getDays();
textViewDay.setText(""+days);
textViewMonth.setText(""+months);
textViewYear.setText(""+years);

相关内容

  • 没有找到相关文章

最新更新