2011-12-09 21 views
0

私は戻ってPHPファイルから取得していますが、日付が間違って予定されているUNIXタイム変換するために、次のコード行を使用しています:(アンドロイド)PHPからJavaへのUnix日付を変換

int unixTime = new Integer(inputjson[2].getString((Integer) x.get(j))).intValue(); 
long timestamp = unixTime * 1000; // msec 
java.util.Date d = new java.util.Date(timestamp); 
をここで

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

私は、データベース内のdateOfStatusフィールドが正しいことを確認しました。ただし、この値をJavaで取得して変換を行うと、日付はオフになります。つまり、今日の午後11時11分は、TUE Jan 06 05:41:12 EST 1970を返します。

何が問題なのかよく分かりません。

この問題に詳しい方はいますか?

答えて

2

このコードは間違っている:

long timestamp = unixTime * 1000; 

unixTimeは乗算1000年で、結果はunixTime * 1000が間違った結果を得るので、最大の整数を超えたときに、10桁の整数です。

long unixTime = Long.parseLong(inputjson[2].getString((Integer) x.get(j))); 
+0

このコードは日付を修正するようですが、タイムスタンプは0に設定されています。なぜこれが起こるのか知っていますか? – user836200

+0

申し訳ありませんが、それは私のせいです!ありがとうございました!これは素晴らしい作品であり、完全に理にかなっています! – user836200

関連する問題