Я сохраняю текущее время в базе данных каждый раз, когда приложение запускается пользователем.Android, как я могу преобразовать String в Date?
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
В стороне базы данных я сохраняю текущее время как строку (как вы видите в приведенном выше коде). Поэтому, когда я загружаю его из базы данных, мне нужно передать его в объект Date. Я видел несколько образцов, которые все они использовали «DateFormat». Но мой формат точно такой же, как формат даты. Итак, я думаю, что нет необходимости использовать «DateFormat». Я прав?
Есть ли какой-либо момент для непосредственного создания этого объекта String to Date? Я хочу сравнить это время с текущим временем.
Благодаря
======> обновление
Спасибо, дорогие ребята. Я использовал следующий код:
private boolean isPackageExpired(String date){
boolean isExpired=false;
Date expiredDate = stringToDate(date, "EEE MMM d HH:mm:ss zz yyyy");
if (new Date().after(expiredDate)) isExpired=true;
return isExpired;
}
private Date stringToDate(String aDate,String aFormat) {
if(aDate==null) return null;
ParsePosition pos = new ParsePosition(0);
SimpleDateFormat simpledateformat = new SimpleDateFormat(aFormat);
Date stringDate = simpledateformat.parse(aDate, pos);
return stringDate;
}
Точно - лучше применить стандартную форму к строке даты перед ее хранением в базе данных. В этом случае http://en.wikipedia.org/wiki/ISO_8601 –
Для более строго работающего решения по «строке на дату» удобно добавить «format.setLenient (false)»; перед попыткой ... catch block. Таким образом, проверка правильной даты строки будет лучше. – Alecs