设置单独的年,月和日的输入

时间:2018-08-31 09:46:03

标签: java android date

我设置了一个AlertDialog.builder,其中有一个输入,用于从用户那里获取日期。目前设置为:

input.setInputType(InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_NORMAL);

我想要的不仅仅是用户必须在其上写的整行。我想要一个像
的东西 输入:__ / __ / ____
用户必须完成
的地方 输入:18/04/2018

然后我将整个内容作为字符串获取:“ 18-04-2018”

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以将字符串解析为LocalDate,然后格式化为所需的格式,也可以将/替换为-

String input = "18/04/2018";
String outPut;

// first approach
LocalDate localDate = LocalDate.parse(input, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
outPut = localDate.format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));

// second approach
outPut = input.replaceAll("/", "-");

答案 1 :(得分:0)

您必须使用SimpleDateFormat,它将更改日期格式。看看这个

public static String changeDateToTimeStamp(String date){
        DateFormat inputFormat = new SimpleDateFormat("dd/mm/yyyy");
        DateFormat outputFormat = new SimpleDateFormat("dd-mm-yyyy");

        Date date1 = null;
        try {
            date1 = inputFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
       return outputFormat.format(date1);
    }

此方法将返回日期,例如“ 18-04-2018"。希望对您有帮助!