我想从EditText(InputType:Date)获取值到整数。 示例:10.01.2017 ==> 20170110
DateFormat df = new SimpleDateFormat("yyyyMMdd");
int inputDate = Integer.valueOf(df.format(etDate.getText().toString()));
我如何解决我的问题?
thx和问候
答案 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来解决它更好。