ich die aktuelle Zeit in Millisekunden wieZeitstempel sorgt für zusätzliche Tage
(System.currentTimeMillis()/1000)
in Zeile bekommen Ich benutze es:
foodObj.setValue("expires",(System.currentTimeMillis()/1000)+ONE_WEEK+"");
und fügen Sie mit ein bis zwei Wochen statisch Ints
public static int TWO_WEEKS = 1209600000;
public static int ONE_WEEK = 604800000;
public static int ONE_DAY = 86400000;
Wenn ich versuche, dies später in Tage zu verwandeln, ist es um 16 oder 17 Tage voraus (idk, wenn es Millisekunden eines Tages als Tag zählt)
//keysValues.get("expires") contains the timestamp
Long exp= Long.parseLong(keysValues.get("expires"));
long days=TimeUnit.MILLISECONDS.toDays(exp)-16;//otherwise this is 23
Warum ist die Inkonsistenz in der Zeit? Ist es eine Long- oder String-Konvertierung?
Wenn Sie 7 als Ausgabe erhalten möchten, dann verwenden Sie System.currentTimeMillis überhaupt nicht, nehmen Sie einfach Ihre Konstante für Millisekunden in einer Woche und stellen Sie diese später wieder her. –