我想按以下顺序序列化和反序列化日期:

SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formater.setTimeZone(TimeZone.getTimeZone("UTC"));

// Data is
Date date = new Date();

// Serial
String sdate = formater.format(date);

// Deserial
Date newDate = formater.parse(sdate);

// Check
assertEquals(newDate, date);

但是,结果(新日期)不等于原始日期吗?!有什么事吗

最佳答案

精度为yyyy-MM-dd HH:mm:ss的日期没有亚秒级信息。您正在失去精度。

您可以通过检查时间戳进行验证:

date.getTime() - newDate.getTime()


差异将告诉您在此过程中损失的毫秒数。

date.getTime()是1000的倍数时,这可能会意外起作用。

10-08 13:19