Java SimpleDate格式化和解析,不会生成唯一值?

Mos*_*afa 1 java serialization date

我想序列和反序列日期如下:

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);
Run Code Online (Sandbox Code Playgroud)

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

ern*_*t_k 5

精度为的日期yyyy-MM-dd HH:mm:ss没有亚秒级信息.你失去了精确度.

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

date.getTime() - newDate.getTime()
Run Code Online (Sandbox Code Playgroud)

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

这可能date.getTime()是偶然的,当时是1000的倍数.