Reputation: 182
I have saved my dates in my sqlite table like 2016-04-20 and I want my listview display them as 20/4/2016 and I use the following inside the bindview of a cursor adapter
String InitialDate=cursor.getString(cursor.getColumnIndex(cursor.getColumnName(2)));
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj = curFormater.parse(InitialDate);
SimpleDateFormat postFormater = new SimpleDateFormat("dd/MM/yyyy");
String newDateStr = postFormater.format(dateObj);
textViewDate.setText(newDateStr);
but before I do anything the part of parse says Unhandled Exception java.text.ParseException I have import of
import java.text.SimpleDateFormat;
import java.util.Date;
Upvotes: 0
Views: 258
Reputation: 3836
you should use try/catch block for parse
method call because it can produce checked exception:
Date dateObj = null;
try {
dateObj = curFormater.parse(InitialDate);
} catch (ParseException e) {
e.printStackTrace();
}
or you can just rethrow this exception from your method (you should use throws ParseException
clause in method signature)
via documentation:
Checked exceptions are subject to the Catch or Specify Requirement. All exceptions are checked exceptions, except for those indicated by Error, RuntimeException, and their subclasses.
Upvotes: 0
Reputation: 48278
These is because the method you are calling can throw an exception and you are not taking care of it.. look:
Date java.text.DateFormat.parse(String source) throws ParseException
Throws: ParseException - if the beginning of the specified string cannot be parsed.
This basically means, if you try to convert a non-sense into a date, the java.text.DateFormat
class will try its best to but if not possible will throw the exception, that you must either catch using the properly try-catch statement or just re throwing the exception so others can take care of it..
t
public static void main(String[] args) throws ParseException {
String InitialDate = new String("2016-04-20");
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj = curFormater.parse(InitialDate);
SimpleDateFormat postFormater = new SimpleDateFormat("dd/MM/yyyy");
String newDateStr = postFormater.format(dateObj);
}
Use....
public static void main(String[] args) {
String InitialDate = new String("2016-04-20");
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj;
try {
dateObj = curFormater.parse(InitialDate);
SimpleDateFormat postFormater = new SimpleDateFormat("dd/MM/yyyy");
String newDateStr = postFormater.format(dateObj);
} catch (ParseException e) {
e.printStackTrace();
System.err.println("a non sense was here");
}
}
Upvotes: 1