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; } 

Solutions Collecting From Web of "Android, Как преобразовать String в Date?"

От строки до даты

 String dtStart = "2010-10-15T09:27:37Z"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); try { Date date = format.parse(dtStart); System.out.println(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

От даты до строки

 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); try { Date date = new Date(); String datetime = dateFormat.format(date); System.out.println("Current Date Time : " + datetime); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } 
 SimpleDateFormat dateFormat = new SimpleDateFormat("DD-MM-YYYY"); Date d = dateFormat.parse(datestring) 

Используя класс SimpleDateFormat или DateFormat через

Например,

 try{ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); // here set the pattern as you date in string was containing like date/month/year Date d = sdf.parse("20/12/2011"); }catch(ParseException ex){ // handle parsing exception if date string was different from the pattern applying into the SimpleDateFormat contructor } 

Было бы неплохо быть осторожным с Locale, на котором c.getTime().toString(); зависит.

Одна из идей – хранить время в секундах (например, время UNIX ). Как int вы можете легко сравнить его, а затем просто преобразовать его в строку при отображении ее пользователю.