package com.andreabaccega.formedittextvalidator;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.annotation.SuppressLint;
import android.text.TextUtils;
import android.widget.EditText;
public class DateValidator extends Validator {
private String[] formats;
public DateValidator(String _customErrorMessage, String _format) {
super(_customErrorMessage);
formats = TextUtils.isEmpty(_format) ? new String[]{"DefaultDate","DefaultTime","DefaultDateTime"} : _format.split(";") ;
}
@SuppressLint("SimpleDateFormat")
@Override
public boolean isValid(EditText et) {
if(TextUtils.isEmpty(et.getText()))
return true;
String value = et.getText().toString();
for(String _format : formats){
DateFormat format;
if("DefaultDate".equalsIgnoreCase(_format)){
format = SimpleDateFormat.getDateInstance();
} else if("DefaultTime".equalsIgnoreCase(_format)){
format = SimpleDateFormat.getTimeInstance();
} else if("DefaultDateTime".equalsIgnoreCase(_format)){
format = SimpleDateFormat.getDateTimeInstance();
} else {
format = new SimpleDateFormat(_format);
}
Date date = null;
try {
date = format.parse(value);
} catch (ParseException e) {
return false;
}
if(date != null){
return true;
}
}
return false;
}
}