EditText(InputType:Date)的值为整数

时间:2018-01-10 10:11:59

标签: android android-layout

我想从EditText(InputType:Date)获取值到整数。 示例:10.01.2017 ==> 20170110

DateFormat df = new SimpleDateFormat("yyyyMMdd");
int inputDate = Integer.valueOf(df.format(etDate.getText().toString()));

我如何解决我的问题?

thx和问候

2 个答案:

答案 0 :(得分:1)

您可以解析日期。然后形成Date对象millies

   DateFormat df = new SimpleDateFormat("yyyyMMdd");
    try {
        Date date=df.parse(textView.getText().toString());
        long millies=date.getTime();// Here is milli seconds
    } catch (ParseException e) {
        e.printStackTrace();
    }

修改

将一种格式转换为另一种格式。你可以使用。

  DateFormat df = new SimpleDateFormat("yyyyMMdd");
    DateFormat inputFormate = new SimpleDateFormat("dd.MM.yyyy");
    try {
        Date date=inputFormate.parse(textView.getText().toString());
        String formated_date=df.format(date);
        // this will be formated_date
    } catch (ParseException e) {
        e.printStackTrace();
    }

请记住,使用可以输入任何内容。因此,您需要先检查,用户输入的日期格式为(dd/MM/yyyy)(MM/dd/yyyy)

要从日期或毫秒获取额外数据,请使用Calender

 Calendar calendar=Calendar.getInstance();
    calendar.setTimeInMillis(millies);
    int day=calendar.get(calendar.DAY_OF_MONTH);

答案 1 :(得分:0)

String text = editText.getText().toString();
String[] array = text.split("\\.");
StringBuilder stringBuilder = new StringBuilder();
for (int i = array.length - 1; i >= 0; i--) {
  stringBuilder.append(array[i]);
}
int date = Integer.parseInt(stringBuilder.toString());

我有这种愚蠢的方式来帮助你。如果你想要接受这个解决方案,可以使用Regular来解决它更好。