Eu armazeno o horário atual no banco de dados toda vez que o aplicativo é iniciado pelo usuário.
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
No lado do banco de dados, eu guardo o horário atual como string (como você pode ver no código acima). Portanto, quando o carrego do banco de dados, preciso convertê-lo no objeto Date. Eu vi alguns exemplos que todos eles usaram "DateFormat". Mas meu formato é exatamente igual ao formato Data. Então, acho que não há necessidade de usar "DateFormat". Estou certo?
Existe alguma maneira de converter diretamente esse objeto String para Date? Eu quero comparar esse tempo armazenado com o tempo atual.
obrigado
======> atualização
Obrigado queridos. Eu usei o seguinte 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;
}
SimpleDateFormat.format()
lança uma exceçãoSimpleDateFormat dateFormat =new SimpleDateFormat(""yyyy-MM-dd'T'HH:mm:ss'Z'"", Locale.getDefault());
fonte
usando a classe SimpleDateFormat ou DateFormat por meio de
por exemplo
fonte
Quarta-feira 14 mar 13:30:00 UTC 2018
14 Mar 2018
fonte
Pode ser uma boa idéia ter cuidado com o Local do qual
c.getTime().toString();
depende.Uma idéia é armazenar o tempo em segundos (por exemplo, tempo UNIX ). Como um,
int
você pode facilmente compará-lo e depois convertê-lo em string ao exibi-lo para o usuário.fonte
fonte