调用Calendar.getInstance()几次有效吗?

时间:2017-04-10 08:06:48

标签: android performance instance android-calendar

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

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

有没有办法更新Calendar实例?它更快吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

如果您只需要当前时间,则可以将其设为System.currentTimeMillis()。如果您需要Calendar功能,则无需每次都致电Calendar.getInstance()。相反,您可以使用现有的Calendar引用,并通过设置当前时间来更新它,例如

calendar.setTimeInMillis(System.currentTimeMillis());

答案 1 :(得分:0)

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

System.currentTimeMillis()

System.nanoTime()

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

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));