今天在使用new Date() 与 System.currentTimeMillis() 的时候,突然发现个有趣的现象,心中有些猜想,录以后观。
情形一:new Date() 在 System.currentTimeMillis() 前调用、打印
Date date = new Date();
System.out.printf("%tQ%n",date);
System.out.println("===================");
System.out.println(System.currentTimeMillis());
结果:
1637302049905
===================
1637302049921
情形二:new Date() 在 System.currentTimeMillis()后调用、打印
System.out.println(System.currentTimeMillis());
System.out.println("===================");
System.out.printf("%tQ%n",date);
结果:
1637302148222
===================
1637302148222
情形三:new Date() 在 System.currentTimeMillis()前、后分别调用、打印
Date date = new Date();
System.out.printf("%tQ%n",date);
System.out.println("===================");
System.out.println(System.currentTimeMillis());
System.out.println("========================");
System.out.println("========================");
System.out.println(System.currentTimeMillis());
System.out.println("===================");
System.out.printf("%tQ%n",date);
结果:
1637302223521
===================
1637302223537
========================
========================
1637302223538
===================
1637302223521
或者:
1637302280837
===================
1637302280853
========================
========================
1637302280853
===================
1637302280837
猜测:
时间数据跟函数调用后,生成的对象有关。