多次调用 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));
我需要在 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));