我试图用JDBC
存储和加载java.util.Date它像这样存储
insertStmt.setTimestamp(1, new Timestamp(date.getTime()));
并且像那样阅读
ResultSet q;
Assert.assertEquals(t.getTime().getTime(), q.getTimestamp("time").getTime());
java.lang.AssertionError: expected:<1392378420194> but was:<1392378420193>
那里是毫秒?
我的数据库是postgres,而fieldd是&#34;时间戳没有时区&#34;
编辑: 这个问题可以关闭,因为存储/检索似乎没问题,问题是我从数据库加载了错误的行
答案 0 :(得分:0)
相反,您可以做一件事,如果毫秒对您很重要,请尝试将其转换为实际时间字符串然后进行比较。您还需要从long ms值中提取日期。
package com.date;
public class CovertFromLong {
public static void main(String[] args) {
long ms = 1392378420194L;
long sec = (ms / 1000) % 60;
long min = (ms / (1000 * 60)) % 60;
long hr = (ms / (1000 * 60 * 60)) % 24;
System.out.println(String.format("%02d:%02d:%02d:%d", hr, min, sec, ms));
}
}