多次调用 Calendar.getInstance() 是否有效?

Is calling Calendar.getInstance() several times efficient?

我需要在 Android 应用程序中多次获取当前时间。

我想知道调用 Calendar.getInstance() 是否是最好的实现,或者相反,我可以更新给定的实例(以某种方式)并使其更快和更便宜(计算)。

有什么方法可以更新 Calendar 实例吗?是不是更快了?

谢谢。

如果你只需要当前时间,你可以得到它 System.currentTimeMillis()。如果您需要 Calendar 功能,则无需每次都调用 Calendar.getInstance()。相反,您可以使用现有的 Calendar 参考,并通过设置当前时间来更新它,例如

calendar.setTimeInMillis(System.currentTimeMillis());

我建议使用以下任一方法而不是创建大量新的 Calendar 实例。

System.currentTimeMillis()

System.nanoTime()

如果您需要当前时间的人类可读版本,您可以然后使用 Calendar 实例从 currentTimeMillis(长整型)结果进行转换,例如下面

Long l = 1491812989036L;

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(l);

System.out.println("year: " + cal.get(Calendar.YEAR));
System.out.println("month: " + cal.get(Calendar.MONTH));
System.out.println("day: " + cal.get(Calendar.DAY_OF_MONTH));