J’utilise les lignes de code suivantes pour convertir le temps unix que je récupère d’un fichier php mais les dates ne sont pas correctes:
int unixTime = new Integer( inputjson[2].getSsortingng((Integer) x.get(j)) ).intValue(); long timestamp = unixTime * 1000; // msec java.util.Date d = new java.util.Date(timestamp);
Voici un extrait du fichier php:
date_default_timezone_set('America/New_York'); while($row1 = mysql_fetch_array($result1)) { $output1[]=$row1['text']; $temp = $row1['dateOfStatus']; $d = strtotime($temp); $output5[] = $d; }
J’ai confirmé que le champ dateOfStatus
dans la firebase database est correct. Cependant, quand je récupère cette valeur en java et que je fais la conversion, les dates sont désactivées: c’est-à-dire que TUE Jan 06 05:41:12 EST 1970
reviennent aujourd’hui: du TUE Jan 06 05:41:12 EST 1970
.
Je ne suis pas sûr de ce qui ne va pas.
Y a-t-il quelqu’un qui connaît ce problème?
Ce code est faux:
long timestamp = unixTime * 1000;
unixTime est un entier avec 10 chiffres, quand multiplier avec 1000, le résultat est supérieur à la valeur entière, donc unixTime * 1000 obtient un résultat erroné. Vous devriez convertir unixTime en long, comme ceci:
long unixTime = Long.parseLong(inputjson[2].getSsortingng((Integer) x.get(j)));