我正在使用以下代码行来转换从php文件恢复的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
。我不知道怎么了。
有没有人熟悉这个问题?
最佳答案
这段代码是错误的:
long timestamp = unixTime * 1000;
unixTime是一个10位整数,乘以1000,结果超过了最大整数,因此unixTime * 1000得出错误的结果。您应该将unixTime转换为long,如下所示:
long unixTime = Long.parseLong(inputjson[2].getString((Integer) x.get(j)));