studio setsupportactionbar programacion móviles from desarrollo curso change aplicaciones android string date casting

setsupportactionbar - programacion android pdf 2018



Android, ¿cómo puedo convertir String hasta la fecha? (6)

Guardo la hora actual en la base de datos cada vez que la aplicación comienza por el usuario.

Calendar c = Calendar.getInstance(); String str = c.getTime().toString(); Log.i("Current time", str);

En el lado de la base de datos, almaceno la hora actual como una cadena (como se ve en el código anterior). Por lo tanto, cuando lo cargo desde la base de datos, necesito convertirlo en el objeto Date. Vi algunas muestras que todos ellos habían usado "DateFormat". Pero mi formato es exactamente igual al formato de fecha. Por lo tanto, creo que no es necesario usar "DateFormat". ¿Estoy en lo cierto?

¿Hay alguna forma de lanzar directamente este objeto String to Date? Quiero comparar este tiempo almacenado con la hora actual.

Gracias

======> actualización

Gracias queridos chicos. Utilicé el siguiente código:

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


De la cadena a la fecha

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) { e.printStackTrace(); }

De fecha a cadena

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) { e.printStackTrace(); }


Podría ser una buena idea tener cuidado con la c.getTime().toString(); regional en la que c.getTime().toString(); depende

Una idea es almacenar el tiempo en segundos (por ejemplo, tiempo UNIX ). Como int , puede compararlo fácilmente y luego convertirlo en una cadena cuando se lo muestra al usuario.


usando la clase SimpleDateFormat o DateFormat a través de

por ejemplo

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 }


import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class MyClass { public static void main(String args[]) { SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); String dateInString = "Wed Mar 14 15:30:00 EET 2018"; SimpleDateFormat formatterOut = new SimpleDateFormat("dd MMM yyyy"); try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatterOut.format(date)); } catch (ParseException e) { e.printStackTrace(); } } }

aquí está la fecha del objeto Fecha y el resultado es:

Mié 14 de mar 13:30:00 UTC 2018

14 de marzo de 2018


SimpleDateFormat dateFormat = new SimpleDateFormat("DD-MM-YYYY"); Date d = dateFormat.parse(datestring)


String source = "24/10/17"; String[] sourceSplit= source.split("/"); int anno= Integer.parseInt(sourceSplit[2]); int mese= Integer.parseInt(sourceSplit[1]); int giorno= Integer.parseInt(sourceSplit[0]); GregorianCalendar calendar = new GregorianCalendar(); calendar.set(anno,mese-1,giorno); Date data1= calendar.getTime(); SimpleDateFormat myFormat = new SimpleDateFormat("20yy-MM-dd"); String dayFormatted= myFormat.format(data1); System.out.println("data formattata,-->"+dayFormatted);