我想按以下顺序序列化和反序列化日期:
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的倍数时,这可能会意外起作用。