Ich speichere die aktuelle Zeit in der Datenbank jedes Mal, wenn die Anwendung vom Benutzer gestartet wird.
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
Auf der Datenbankseite speichere ich die aktuelle Zeit als Zeichenfolge (wie Sie im obigen Code sehen). Wenn ich es aus der Datenbank lade, muss ich es daher in das Date-Objekt umwandeln. Ich habe einige Beispiele gesehen, bei denen alle "DateFormat" verwendet hatten. Aber mein Format ist genau das gleiche wie das Datumsformat. Ich denke, es ist nicht nötig, "DateFormat" zu verwenden. Habe ich recht?
Gibt es überhaupt eine Möglichkeit, dieses String-to-Date-Objekt direkt umzuwandeln? Ich möchte diese gespeicherte Zeit mit der aktuellen Zeit vergleichen.
Vielen Dank
======> aktualisieren
Danke liebe Jungs. Ich habe folgenden Code verwendet:
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()
eine AusnahmeSimpleDateFormat dateFormat =new SimpleDateFormat(""yyyy-MM-dd'T'HH:mm:ss'Z'"", Locale.getDefault());
quelle
Verwenden der SimpleDateFormat- oder DateFormat-Klasse durch
für zB
quelle
Mi 14. März 13:30:00 UTC 2018
14. März 2018
quelle
Es könnte eine gute Idee sein, vorsichtig mit dem Gebietsschema umzugehen, von dem es
c.getTime().toString();
abhängt.Eine Idee ist, die Zeit in Sekunden zu speichern (z . B. UNIX-Zeit ). Als
int
können Sie es leicht vergleichen und dann einfach in einen String konvertieren, wenn Sie es dem Benutzer anzeigen.quelle
quelle