我需要在Android应用中多次获取当前时间。
我想知道调用Calendar.getInstance()
是否是最好的实现,或者相反,我可以更新给定的实例(以某种方式)并使其更快,更便宜(计算)。
有没有办法更新Calendar
实例?它更快吗?
谢谢。
答案 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));